程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> Struts和JSP亂碼問題的注意事項

Struts和JSP亂碼問題的注意事項

編輯:關於JSP

最近完成一個項目,其中遇到了兩次比較詭異的亂碼問題,在這裡記錄一下,給自己提個醒,也為後來者提供參考。

這是一個用SSH實現的項目,為了防止亂碼,從數據庫到頁面編碼,再到struts的默認編碼方式全部設置為了utf-8(具體設置方式網上有很多資料啦,這裡不贅述了),以為這樣就能沒有後患了,但事情發展沒有這麼順利。

1. 使用post的方式提交表單一切數據正常,使用get的方式提交表單則會有中文亂碼。這是因為URL的編碼問題產生的,URL的默認編碼並不是utf-8,所以需要在Tomcat的conf文件夾下修改server.xml中的加入URIEncoding="UTF-8"

<Connector URIEncoding="UTF-8"connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443" />

2.頁面所有數據顯示正常,包括中文等,沒有亂碼。但是打開源文件發現只要是通過struts標簽從後台拿到的數據都是亂碼,類似一堆數字。在一般情況下,這個問題沒什麼影響,畢竟頁面顯示正常,但是在顯示由富文本框提交的顯示的數據時,會直接打印出標簽信息,而不是進行解析,如本應顯示粗體<b>,會直接打印<b>...</b>。剛開始很困惑,後來一想,從後台拿來的數據都是正常的,為什麼到了頁面就會出現這種情況,問題肯定出在struts標簽上,後來一查Tag Reference,發現<s:property />有個屬性叫escape默認為true,意思是會跳過對html的解析,所以只要設置escape="false"就不會有問題了,再回頭看源文件,內容頁正常了。

本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved