使用Spring MVC框架进行前台页面跳转时,跳转到的新页面中文显示乱码的问题解决
摘要:我昨天花了一天时间学习了SSM项目搭建,却在最终的编码问题上拉胯了,在使用Spring MVC框架进行前台页面的跳转时,跳转到的新页面的中文会显示乱码,我试了很多方法解决都没有解决,今天我终于解决了。
关于跳转乱码的问题困扰了我许久,我尝试了很多种办法,如:
<!--在web.xml中配置Spring提供的过滤器类 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在xml中的过滤器中配置编码。
又如:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=utf-8</value>
<value>application/json;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
在spring配置文件中添加编码解析。
除此之外我还尝试了各种各样的方法,比如修改html页面的编码,修改浏览器的解析格式,设置强制编码等(网上都能搜出来),但是都没有解决问题,终于我找到这样一篇博客:(25条消息) springmvc html跳转乱码问题_Deng2012web的博客-CSDN博客,尽管他的配置文件和我的不尽相同,但是却给了我灵感,我考虑页面跳转问题时考虑的点在于controller层和视图层,而忽略了中间的配置文件部分,也就是视图解析器部分:
页面的跳转,视图的解析都是通过这些配置信息完成的,那么我应该在templateResover
中添加一个编码设定选项,这里是格式解析部分,我想既然是格式解析,那么一定也会对整体文件的编码格式影响,那么我可能有必要在这里也书写一个编码设定,图中我已经写上了:<property name="characterEncoding" value="utf-8"></property>
,结果写上之后,直接给成了:
真的是太感动了!