项目中使用Struts2和Spring Security。
问题描述:
正常提交表单没有任何乱码问题。如果用户提交表单时session timeout,Spring security会重定向到登陆界面,让用户重新登陆,重新登陆后,Spring Security会重新清酒之前存储的request数据,会发现之前表单输入的中文全是乱码。
问题解决:
在web.xml中增加以下filter的配置,注:一定要配置到所有filter的前面。
<filter> <filter-name>encodingFilter</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> <init-param> <param-name>forceEncoding</param-name> <param-value>false</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>