今天做struts2測試的時候,出現了亂碼問題:
原本在jsp頁面輸入框中提交的內容包含中文,但是提交到mysql資料庫的時候,是亂碼。
1.首先我檢查jsp頁面編碼為:
jsp頁面是沒有問題的。
2.檢查struts2的配置檔案內容:
其實這個不需要設定,struts2預設配置檔案中就是utf-8的,也沒有問題。
3.檢查jdbc連線的問題:
這個也沒有問題,其實在安裝好mysql之後配置的時候選擇了utf-8的話,這裡也可以不用指定編碼。
以上字元編碼都沒有問題,但是就是要出現亂碼,那麼問題又處在**呢?
於是又去google走了一圈,有人說提供過濾器,那好吧我就寫乙個過濾器吧:
然後在web.xml新增以下配置(注:我的struts2版本為2.1.8.1):
配置檔案中設定了字元編碼為utf-8,最好將這個過濾器置於struts2的過濾器之前。
好吧,接下來就是見證奇蹟的時刻!部署測試-----------------結果還是亂碼,哈哈!
看來不是過濾器的問題,因為當你的請求都被struts2接管了,它內建編碼為utf-8,所以我感覺這個過濾器本來就是多餘的,毫無用處。
那麼又是怎麼回事呢?經過我測試,亂碼不是出現其他地方,而是在jsp頁面中!!
我看我的form提交的方法忘記寫了,也就是沒有指定method="post"或"get",那好,我加上method="post",再來測試,恭喜,測試通過了!!沒有亂碼了!!如果你改為method="get",那麼你就會再次遇見你的老朋友---亂碼!說明用jsp頁面form提交的時候預設使用get方式,那麼就會出現亂碼,使用post就沒有問題了。
希望能給遇到類似情況的朋友提供點幫助。如果不對的地方希望大家斧正!
struts 2 國際化亂碼問題解決方案
所有的檔案編碼都設定為utf 8。所有過程正常開發結束後。將messagesource.propertis本地化 native2ascii messagesource.propertis messagesource zh cn.propertis 執行,發現頁面上從資源檔案中讀取的內容仍然為亂碼。解...
Struts2接收批量提交資料解決方案
struts2接收批量提交資料解決方案 說明 解決頁面大批量提交資料到後台,封裝物件,持久化到資料庫,此文件對比了兩種方式 物件集合接收 屬性陣列接收 環境 ssh2 jsp js 測試基數 一千條資料批量提交 第一種方式 物件集合接收 action中物件集合定義 private listuserl...
Struts2的中文亂碼解決
中文亂碼問題一般是指當請求引數有中文時,無法在action中得到正確的中文。struts2 中有2種辦法可以解決這個問題 設定jsp頁面的pageencoding utf 8 就不會出現中文亂碼 如果jsp 頁面的pageencoding gbk 那麼需要修改struts.i18n.encoding...