在spring mvc 3.0 框架中,通過JSP頁面、HTML頁面以POST方式提交表單時,表單的參數傳遞到對應的servlet后會出現中文顯示亂碼的問題。解決辦法可采用spring自帶的過濾技術,對所有頁面間參數的傳遞設置統一的字符編碼。
對於post請求:
分兩步解決問題:
1.設置頁面格式為UTF-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2.在web.xml中添加過濾器
<!--spring3.0添加了一個過濾器,可以將這些請求轉換為標准的http方法,使得支持GET、POST、PUT與DELETE請求 --> <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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
本文參考鏈接:http://blog.csdn.net/mybackup/article/details/7566590
對於get請求:
也是分兩步解決:
1.同上1步驟。
2.在方法注解上設置produces值,如下:
@RequestMapping(value="/selectPlaceListMap",produces = "text/html;charset=UTF-8")
這樣就解決了亂碼問題。
