Struts國際化問題解決

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- Struts國際化問題解決 (http://www.webasp.net/article/22/21484.htm)
-- 作者:未知
-- 發佈日期: 2005-04-30

1.解決jsp頁面中的中文問題:在每個jsp頭都加上<%@ page contentType="text/html;charset=GBK" language="java" %>,有需要的話也可以再加上<html:html locale="true"></html:html>表示使用本地編碼。

2.解決資源包中的中文問題jsp要調用資源包中的信息,我們需要這些信息是中文的,但是資源包中是不能直接寫入中文的。否則會有亂碼。

步驟:1) 先將資源包的信息寫成自己需要的中文信息,保存成ApplicationResources_zh.properties      2) 運行cmd到資源包所在目錄,運行jdk命令:native2ascii -encoding gb2312 ApplicationResources_zh.properties temp.txt         運行後會將編碼轉換成ascii,儲存在temp.txt。複製temp.txt中的內容,用它覆蓋ApplicationResources_zh.properties原來的內           容。      3) 不需要更改struts-config.xml中的資源包設置,它會根據瀏覽器的設置判斷,選擇相應的資源包。比如在IE的工具-INTERNET選項-       語言,選擇你需要的語言。你可以選擇多種語言,但系統會根據先後關係選擇資源包。如果把中文放在前面,系統就會使用ApplicationResources_zh.properties的資源包。   3.解決頁面數據傳輸的中文問題jsp中將中文傳給bean,再由bean傳給jsp,在頁面顯示出來是亂碼。在WEB.XML中加入字體類,內容如下:<!--SET CHARACTOR ENCODING--><filter>  <filter-name>Set Character Encoding</filter-name>  <filter-class>filters.SetCharacterEncodingFilter</filter-class>     <init-param>       <param-name>encoding</param-name>      <param-value>GBK</param-value>     </init-param> </filter>  <filter-mapping>      <filter-name>Set Character Encoding</filter-name>      <url-pattern>*.do</url-pattern>  </filter-mapping>這裡使用到一個字體類,SetCharacterEncodingFilter,在jsp-examples中可以找到,也可以參照裡面的例子。你可以將那裡的filters文件拷貝到你的classes下面。這裡需要注意的是 <url-pattern>的內容,很多網頁裡把這裡寫成action。但是若這樣寫的話,是找不到項目的。所以,我把它寫成*.do。如果是簡單的javabean,則可以寫成/*。

4. get方式的解決方法(struts不需要這個設置,只是附帶說明而已)打開tomcat的server.xml文件,找到區塊,加入如下一行:URIEncoding=”GBK”完整的應如下:

<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000"  disableUploadTimeout="true"  URIEncoding="GBK"/>

     

webasp.net