【发布时间】:2011-05-12 04:24:50
【问题描述】:
如何将 JSON 支持添加到 dispatch-servlet.xml(XML 可以正常工作)?
评论文本只是尝试失败...
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:oxm="http://www.springframework.org/schema/oxm"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd">
<context:annotation-config/>
<context:component-scan base-package="com.example"/>
<oxm:jaxb2-marshaller id="marshaller" contextPath="com.example.domain"/>
<beans:bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<beans:bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<beans:constructor-arg ref="marshaller"/>
</beans:bean>
<!-- <beans:bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<beans:constructor-arg ref="marshaller"/>
</beans:bean> -->
</beans:list>
</beans:property>
</beans:bean>
<beans:bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<beans:bean name="note" class="org.springframework.web.servlet.view.xml.MarshallingView">
<beans:constructor-arg ref="marshaller"/>
</beans:bean>
<!-- <beans:bean name="note" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<beans:constructor-arg ref="marshaller"/>
</beans:bean> -->
<!-- InternalResourceViewResolver should be the last sice it always returns/resolves a view -->
<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></beans:property>
<beans:property name="prefix" value="/WEB-INF/jsp/"></beans:property>
<beans:property name="suffix" value=".jsp"></beans:property>
</beans:bean>
</beans:beans>
其他解决方案,用于:
method=RequestMethod.POST, headers = "content-type=application/json"
你还需要:
<beans:bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter>
<beans:property name="messageConverters">
<beans:list>
<beans:bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</beans:list>
</beans:property>
</beans:bean>
为@RequestBody正确绑定java对象。
【问题讨论】:
-
哇,反对票是怎么回事?至少给我一些指点......
-
不是一个downvoter,但我想这是因为没有告诉我们如何失败的尝试失败以及错误是什么:)
-
好的,我同意,我可以更详细地介绍... AHungerArtist 的回答有帮助:)
标签: java xml json spring spring-mvc