好贷网好贷款

spring mvc3.2.4生成的json配置

发布时间:2016-12-4 14:33:10 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"spring mvc3.2.4生成的json配置",主要涉及到spring mvc3.2.4生成的json配置方面的内容,对于spring mvc3.2.4生成的json配置感兴趣的同学可以参考一下。

场景:方便使用spring mvc生成json,并且兼容ie,chrome.... 设计:手工指定RequestMappingHandlerMapping和RequestMappingHandlerAdapter,并给RequestMappingHandlerAdapter的messageConverters的注入属性值.不使用驱动注解(<mvc:annotation-driven />)自动配置的原因是:自动配置我没找到方法来修改response的Content-Type, 而自动配置默认的content-type是application/json;charset=UTF-8.这个contentType在谷歌浏览器很正常解析,而到了IE解析为弹出下载了,IE10,IE11一样不给面子!!!如果将contentType改为:text/html;charset=UTF-8.那IE和google浏览器都能正常解析了. 不用再去写<mvc:annotation-driven />,至于<mvc:annotation-driven />在背后做了什么,可看参考手册.注意spring版本哦,这两类从3.1才开始有的. 基于xml配置: <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> 基于Java-config: @Bean public RequestMappingHandlerMapping requestMappingHandlerMapping(){ return new RequestMappingHandlerMapping(); } @Bean public RequestMappingHandlerAdapter requestMappingHandlerAdapter(){ List<HttpMessageConverter<?>> converters=new ArrayList<HttpMessageConverter<?>>(); MappingJackson2HttpMessageConverter converter=new MappingJackson2HttpMessageConverter(); List<MediaType> mediaTypes=new ArrayList<MediaType>(); mediaTypes.add(TEXT_HTML_UTF8); mediaTypes.add(APPLICATION_JSON_UTF8); converter.setSupportedMediaTypes(mediaTypes); converters.add(converter); RequestMappingHandlerAdapter adapter=new RequestMappingHandlerAdapter(); adapter.setMessageConverters(converters); return adapter; } 加入jackson包,[email protected],OK! 如果要全局支持jsonp(支持jsonp的做法:可以在controller的方法返回String类型,接收一下callback,然后callback调用一下json结果就可以),可以再加一个StringHttpMessageConverter,不仅能解决中文乱码,还能把json里面的换行\r\n去掉. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html; charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html; charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> 当然如果只是个别几个方法用到jsonp,[email protected]

上一篇:补上昨天的,水题,杭电,2035 人见人爱A^B题
下一篇:Ubuntu上使用QEMU模拟Ubuntu

相关文章

相关评论