spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法
作者:草蛋的小青年
下面小编就为大家分享一篇spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
问题发生:
通过@Responsebody返回
@ResponseBody @RequestMapping(value ="/selectByFormId",method = RequestMethod.GET) public Map<String,Object> getClassName(String formId){ List<String> list =formInfoService.selectClassName(formId); Map<String,Object> map = new HashMap<String, Object>(); map.put("data", list); map.put("status", true); return map; }
结果:
{"data":["璧勮璇疯喘绫�","淇冮攢绫�","绠$悊绫�","鏆傛敮绫�","鍌ㄨ繍绫�","璧勪骇绫�","璧勮鏈嶅姟绫�","宸梾绠$悊绫�",<br>"閲囪喘绫�","浜轰簨鑰冨嫟绫�","璐㈠姟绫�","瀹㈡埛绫�","瑙嗘嫇绫�","瀹㈣瘔绫�","浜轰簨娲诲姩绫�","浜轰簨琛屾斂绫�","鍏枃绫�",<br>"璇锋绫�","閿€绠$被","钀ヨ繍涓氬姟绫�"],"status":true}
解决办法:
在spring-mvc.xml中配置
<!-- 解决ResponseBody 乱码问题StringHttpMessageConverter这个转换器转换时,父类AbstractHttpMessageConverter的supportedMediaTypes属性默认是iso-8895-1导致 --> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value="text/html;charset=utf-8"></property> </bean> </mvc:message-converters> </mvc:annotation-driven>
但是配置完后又有了新的问题
error:...cvc-complex-type.2.1: 元素 'mvc:annotation-driven' 必须不含字符或元素信息项 [子级], 因为该类型的内容类型为空。
后来知道是 springMVC的XSD文件版本不对,换成springMVC 4.0的 XSD就可以了
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
然后就ok了
{"data":["资讯请购类","促销类","管理类","暂支类","储运类","资产类","资讯服务类","差旅管理类","采购类","人事考勤类"<br>,"财务类","客户类","视拓类","客诉类","人事活动类","人事行政类","公文类","请款类","销管类","营运业务类"],"status":true}
StringHttpMessageConverter 这个方法 有很多转换作用,有时间可以多看看
以上这篇spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- 详解SpringBoot中添加@ResponseBody注解会发生什么
- 详解SpringBoot定制@ResponseBody注解返回的Json格式
- SpringBoot使用@ResponseBody返回图片的实现
- 解决使用@ResponseBody后返回500错误的问题
- 关于@ResponseBody 默认输出的误区的解答
- spring boot @ResponseBody转换JSON 时 Date 类型处理方法【两种方法】
- Springmvc 4.x利用@ResponseBody返回Json数据的方法
- springMvc注解之@ResponseBody和@RequestBody详解
- SpringMVC中解决@ResponseBody注解返回中文乱码问题
- @ResponseBody 和 @RequestBody 注解的区别
- SpringMVC注解之@ResponseBody注解原理