springmvc Spring3 MVC @ResponseBody返回,jquery ajax调用中文乱码问题解决
Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。具体实现AnnotationMethodHandlerAdapter类handleResponseBody方法,具体实现代码:
结果输出乱码:???????
有人跟踪@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,
解决办法,在spring mvc的配置文件中手工配置bean:
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
<property name="messageConverters">
<list>
<bean class = "org.springframework.http.converter.StringHttpMessageConverter">
<property name = "supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
这样通过配置AnnotationMethodHandlerAdapter类messageConverters属性来指定编码。
记住,需要把bean部分加入到<context:component-scan base-package="com.zlscw.mvc" />前面,这样就可以在jquery中直接调用而不出现乱码了。

本文详细介绍了Spring3.0MVC中@ResponseBody注解导致的中文乱码问题及其解决方法,包括在SpringMVC配置文件中手工配置bean来指定编码,确保在使用jQuery AJAX调用时数据正确显示。
159

被折叠的 条评论
为什么被折叠?



