spring mvc form表單submit直接提交出現亂碼。導致亂碼一般是服務器端和頁面之間編碼不一致造成的。根據這一思路可以依次可以有以下方案。
1、jsp頁面設置編碼
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
2、tomcat服務器設置,在server.xml中添加編碼設置 URIEncoding="UTF-8"
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
3、web.xml中添加編碼設置
<filter> <filter-name>CharacterEncoding</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>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
注意,此段編碼設置必須在所有filter的前面,否則過濾器有可能不起作用。