日期:2014-05-16  浏览次数:20358 次

spring mvc注解 @ResponseBody异步返回json数据的时候乱码
最近在做一个项目,spring mvc + mybatis。当用 @ResponseBody返回一个json中文数据的时候,出现了乱码问题,按照网上的说法,也配置了

<!-- 框架控制层 controller-->
	<!-- 注解探测器 -->
	<context:component-scan base-package="com.wxws.*.controller,com.wxws.*.*.controller" />
	<mvc:annotation-driven />

<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/plain;charset=UTF-8</value>
						</list>
					</property>
				</bean>
			</list>
		</property>
</bean>

但还是不起作用,后来继承了AbstractHttpMessageConverter这个类,将spring mvc 异步默认的编码方式也改了,还是不行…… 
    后来才发现是
<!-- 框架控制层 controller-->
	<!-- 注解探测器 -->
	<context:component-scan base-package="com.wxws.*.controller,com.wxws.*.*.controller" />
	<mvc:annotation-driven />
这个的顺序问题,更改后

<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/plain;charset=UTF-8</value>
						</list>
					</property>
				</bean>
			</list>
		</property>
</bean>

<!-- 框架控制层 controller-->
	<!-- 注解探测器 -->
	<context:component-scan base-package="com.wxws.*.controller,com.wxws.*.*.controller" />
	<mvc:annotation-driven />



这样,页面显示的就不再是乱码了!好蛋痛的问题!