在spring 3.2.2中spring mvc 使用@ResponseBody返回数据时,中文显示乱码,在网络上答案很多,尝试了很多方法,花了两三小时都没有解决这个问题。最后在国外的一个网站看见配置如下,最终解决该问题,希望对大家有所帮助。
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<bean
class="org.springframework.http.converter.ResourceHttpMessageConverter" />
<bean
class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean
class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
<bean
class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" />
</list>
</property>
</bean>
<!-- end by 谷长鹏 2014-02-20 json乱码处理 begin -->
注意该配置必须在:<mvc:annotation-driven />之前.
之前搭建环境的配置:
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes"> <list>
<value>text/html;charset=UTF-8</value> </list> </property>
</bean>
这种方式不行。