首页 > 编程 > Java > 正文

spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法

2019-11-26 10:39:52
字体:
来源:转载
供稿:网友

问题发生:

通过@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返回结果中文乱码的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表