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 |