gpt4 book ai didi

java - @ResponseBody 意外格式

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:32 25 4
gpt4 key购买 nike

我有一个用于普通旧 xml Web 服务的 Spring MVC Controller ,方法如下:

@RequestMapping(
value = "/trade/{tradeId}",
method = RequestMethod.GET)
@ResponseBody
public String getTrade(@PathVariable final String tradeId) {
return tradeService.getTrade(tradeId).getXml();
}

哪种有效,我的浏览器中的输出是

<?xml version="1.0" encoding="UTF-8"?><Trade id="foo"/>

但是如果我“查看源代码”,那么实际输出是

<string>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;Trade ...

这显然不是我想要的。如何获取实际返回的 XML?

最佳答案

您似乎尝试直接编写 XML,但 xml 转换器假定您向它们提供对象,并将其编码为 XML。

您需要注册StringHttpMessageConverter在 xml 转换器之前。喜欢:

<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean
class="org.springframework.http.converter.ResourceHttpMessageConverter" />
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
<bean
class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean
class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter" />
<bean
class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter" />
<bean
class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean
class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
</list>
</property>
</bean>

关于java - @ResponseBody 意外格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4206125/

25 4 0