Spring MVC 3:通过@ResponseBody返回XML

请原谅我发布这个菜鸟问题,但是我已经调试了很长时间了。我在尝试获取响应以基于对象返回XML时遇到一些问题:-

@RequestMapping(value = "/mylink", method = RequestMethod.GET)

public @ResponseBody SomeObject doIt() {

...

}

现在,即使调用了该API,我的客户端也根本没有收到XML响应。我读过一些地方,似乎需要配置XML

marshaller或某种XML解析器,但是我不确定如何将其集成到我的现有配置中。我目前在servlet.xml中具有以下配置:-

<context:component-scan base-package="ss.controller" />

<mvc:annotation-driven />

<mvc:resources location="/resources/" mapping="/resources/**" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/jsp/app/" />

<property name="suffix" value=".jsp" />

</bean>

有人可以在配置servlet.xml时如何发布一些示例配置有关如何进行工作吗?非常感谢。

回答:

这可以通过在Spring上下文中添加以下魔术来实现(请参阅docs):

<mvc:annotation-driven/>

其中包括:

如果类路径中存在JAXB,则支持读写XML。

如果检测到JAXB(即,如果您使用Java6,或者在类路径上具有某些JAXB实现),它将Jaxb2RootElementHttpMessageConverter在上下文中注册a

,并提供从@ResponseBody-annotated方法的返回值中吐出XML的能力。。

注意:您的问题排序建议建议使用a ViewResolver来呈现XML,但这不是必需的。该@ResponseBody注释被设计成旁路完全视图层。

以上是 Spring MVC 3:通过@ResponseBody返回XML 的全部内容, 来源链接: utcz.com/qa/427169.html

回到顶部