springmvc开发笔记-三种方法使用生成json数据的配置


方便使用spring mvc生成json,且兼容ie,chrome....

设计:手工指定RequestMappingHandlerMapping和RequestMappingHandlerAdapter,并给RequestMappingHandlerAdapter的messageConverters的注入属性值.不使用驱动注解()自动配置的原因是:自动配置我没找到方法来修改response的Content-Type, 而自动配置默认的content-type是application/json;charset=UTF-8.这个contentType在谷歌浏览器很正常解析,而到了IE解析为弹出下载了,IE10,IE11一样不给面子!!!如果将contentType改为:text/html;charset=UTF-8.那IE和google浏览器都能正常解析了.

不用再去写,至于在背后做了什么,可看参考手册.注意spring版本哦,这两类从3.1才开始有的.

1.基于xml配置

Code   ViewPrint
  1. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
  2. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
  3.     <property name="messageConverters">
  4.         <list>
  5.             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  6.                 <property name="supportedMediaTypes">
  7.                     <list>
  8.                         <value>text/html;charset=UTF-8</value>
  9.                         <value>application/json;charset=UTF-8</value>
  10.                     </list>
  11.                 </property>
  12.             </bean>
  13.         </list>
  14.     </property>
  15. </bean>

2.基于Java-config方式

这个更加简单:
1.先配置你的mvc继承WebMvcConfigurerAdapter
2.重写configureMessageConverters方法。
3.加入jackson包,在controller使用@ResponseBody注解。

如果要全局支持jsonp(支持jsonp的做法:可以在controller的方法返回String类型,接收一下callback,然后callback调用一下json结果就可以),可以再加一个StringHttpMessageConverter,不仅能解决中文乱码,还能把json里面的换行\r\n去掉.

Code   ViewPrint
  1. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
  2. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
  3.     <property name="messageConverters">
  4.         <list>
  5.             <bean class="org.springframework.http.converter.StringHttpMessageConverter">
  6.                 <property name="supportedMediaTypes">
  7.                     <list>
  8.                         <value>text/html; charset=UTF-8</value>
  9.                         <value>application/json;charset=UTF-8</value>
  10.                     </list>
  11.                 </property>
  12.             </bean>
  13.             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  14.                 <property name="supportedMediaTypes">
  15.                     <list>
  16.                         <value>text/html; charset=UTF-8</value>
  17.                         <value>application/json;charset=UTF-8</value>
  18.                     </list>
  19.                 </property>
  20.             </bean>
  21.         </list>
  22.     </property>
  23. </bean>

3.使用@RequestMapping

这个方法只适用于方法不多的时候。

声明:大家学-卢卫湘|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - springmvc开发笔记-三种方法使用生成json数据的配置


加vx: beyonds 备注:app上架 lwxshow