spring-MVC 3.1后的 返回json配置
配置如下:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"
p:ignoreDefaultModelOnRedirect="true" >
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
// WEB-INF//lib 中添加
jacson-mapper-asl-1.6.4.jar
jacson-core-asl-1.6.4.jar
// Controller 中 使用:@ResponseBody 标注方法,该方法返回Java对象(支持复杂对象):
如:
@ResponseBody
public User getUser(User user){
return user;
}
MappingJacksonHttpMessageConverter 会将对象转换为JSON输出
注意:当springMVC-servlet.xml中使用<mvc:annotation-driven />时,3.1之后默认注入RequestMappingHandlerAdapter,只需加上上面提及的jar包即可!
注意:默认情况下MappingJacksonHttpMessageConverter 会设置content为application/json,
在IE9下返回会出现提示下载的现象,出现这种情况可以手动指定头信息为"text/html",或者"/"(所有,不确定就设置为这个)。
如果是手动注入RequestMappingHandlerAdapter 可以这样设置:
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"
p:ignoreDefaultModelOnRedirect="true">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"
p:supportedMediaTypes="/" />
</list>
</property>
</bean>
注意:如果是采用mvc:annotation-driven标签 可以这样注入信息,如下:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"
p:supportedMediaTypes="/" />
</mvc:message-converters>
</mvc:annotation-driven>
注入的message-converters优先级高于默认注入的json转换器。

浙公网安备 33010602011771号