在为一个大作业搭建后台的时候,发现调用接口返回的数据中文乱码,中文都显示?????,在网上找了很多解决方法,有使用
RequestMapping(value = "testPersonalValidtor.do",produces = "application/json;charset=utf-8")
方法的,但我觉得每个方法都要加这个声明太麻烦,想在配置文件修改编码格式,一劳永逸。
试过了网上很多方法,发现没找到可用的,不过综合了几篇,竟然让我成功了!现在让我分享一下代码吧
首先在springMVC-servlet.xml文件里增加
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="#{T(java.nio.charset.Charset).forName('UTF-8')}"/>
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
<value>applicaiton/javascript;charset=UTF-8</value>
</list>
</property>
<property name="writeAcceptCharset"><value>false</value></property>
</bean>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8</value>
<value>application/x-www-form-urlencoded; charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
有篇博文说要放在
<context:component-scan base-package="com.beiyi.controller"></context:component-scan>
的前面,我直接用了。
同时记得在文件前加
xmlns:mvc="http://www.springframework.org/schema/mvc"
,在 xsi:schemaLocation=""里加
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
然后在Maven依赖中加入Jackjson的依赖
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
然后使用一下Maven的update project,最好再clean一下项,然后就成功了。
展示一下前后对比的图吧
希望能帮助到大家~
参考博客:
https://yq.aliyun.com/articles/70081
https://yq.aliyun.com/articles/83808?spm=5176.100239.blogcont70081.22.ddoq5w