SpringMVC乱码解决方法
一、首先是解决请求的编码问题
我们在web.xml中设置过滤器来设置编码,但是之前只写了这个,后面发现响应的数据依旧乱码,因此总结一下解决乱码的方法,(亲测有效!)
web.xml
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
二、解决响应数据的编码问题
分析:为什么响应数据会乱码呢,这是因为响应的默认编码是ISO-8859-1,而我们需要统一编码解析
方法一:
在controller层里面方法上,但是这只对当前这个方法有效,所以这并不是我想要的,我需要的是全局!!而不是当前这个方法,一个方法一个配置就有点恶心了所以请看方法二:
@RequestMapping(value = "/save",produces = "text/html;charset=utf-8")
方法二:
这就很nice了,配置在spring-mvc.xml里面,但是注意,得配置在组建扫描和注解驱动下面,顺序很重要!!!!!!!
<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>