国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

Struts初級教程(4)-對國際化的支持

2024-09-05 00:17:22
字體:
來源:轉載
供稿:網友
隨著全球經濟的在體化趨勢,網頁設計開發者應該開發出支持多國語言、國家化的web應用程序。就是一個web應用程序在運行時能夠根據客戶端請求所來自的國家和語言的不同顯示不同的用戶界面。這樣當需要在應用程序中添加對一種新的語言的支持時,不需要對已有的軟件返工,無需修改應用程序的程序代碼。I18N作為“國際化”的簡稱,其來源是明文單詞“internationlization”的首末字符“i”和“n”之間的字符數為18。

Struts對國家化的支持
在Struts框架中進行應用程序的國際化,支持重點在于應用程序的文本和圖像表示。最重要的工作就是準備Resurce Bundle 資源包。事實上,準備資源包的過程,就是把對應不同語言的用戶所涉及的文本和圖片保存在多個文本文件中,客戶端根據不同的環境需要進行更換。這些文件被稱為“屬性文件”,所有屬性文件合在一起被稱為資源包(Resource Bundle)。
Struts建立于Java平臺之上,很容易建立國際化和本地化的應用程序。在這里你要熟悉的關鍵概念是:
1)   Locale – 基礎的支持國際化的java類是java.util.Locale。每個Locale代表一個特別的國家和語言的選擇(加上一個可選的語言變量),以及一套格式假定,例如數字和日期等等。
2)   ResourceBundle – java.util.ResourceBundle類提供支持多種語言消息的基本工具。查看文檔中關于ResourceBundle類以及你的JDK版本的文檔包中關于國際化的更多內容。
3)   PropertyResourceBundle – 一個ResourceBundle類的標準實現允許你使用與初始化properties文件同樣的鍵/值的語法來定義資源。這對于使用為用于一個web應用程序的消息準備資源包是非常方便的,因為這寫消息通常都是面向文本的。
4)   MessageFormat – java.text.MessageFormat類允許你使用運行時的指定的參數替換一個消息字符串中的一部分(在這種情況下,是一個從一個資源包得到的消息)。這在你創建一個句子的場合中是有用的,但是詞會以不同的語言安照不同的順序出現。消息中的占位符,字符串{0}用第一個運行時參數替換,{1}用第二個運行時參數替換,以此類推。
5)   MessageResources – Struts的類org.apache.struts.util.MessageResources使你能夠將一套資源包視做一個數據庫,并且允許你為一個特定的Locale(通常是與當前用戶相對應)請求一個特定的消息,而不是為服務器運行在其中的缺省的Locale請求消息。

示例
1、我們還在前面的登錄實例進行加工。
2、在默認的applicationResources.properties文件中添加相應的消息文本。 
   label.username=username 
   label.password=password 
   button.submit=submit 
   button.reset=reset
3、創建臨時中文資源文件:applicationResources_temp.propertyies 
   label.username=用戶名 
   label.password=密碼 
   button.submit=確定 
   button.reset=重置
4、對臨時資源文件進行編碼轉換: 
   在JDK中提供了native2ascii命令,它能夠實現字符編碼轉換。在DOS下執行以下命令,將生成按GBK以編碼的中文資源文件:
applicationResources_zh_CN.properties 
native2ascii –encoding gbk applicationResources_temp.properties 
applicationResources_zh_CN.properties 
生成的applicationResources_zh_CN.properties的內容如下: 
label.username="u7528"u6237"u540d
label.password="u5bc6"u7801
button.submit="u786e"u5b9a
button.reset="u91cd"u7f6e 
當web用戶的Locale為中文時,Struts框架將自動選擇來自applicationResources_zh_CN.properties文件的消息文本。 

5、創建英文的資源文件:
label.username=username 
label.password=password 
button.submit=submit 
button.reset=reset 
    完成以上幾個步驟后,在web 應用程序的根目錄"WEB-INF目錄"classes目錄下應該有了三個資源文件: 
      默認資源文件:applicationResource.properties 
     中文資源文件:applicationResource_zh_CN.properties
     英文資源文件:applicationResource_en.properties
6、創建struts的Resource Bundle
Struts配置文件中的<message-resources>元素定義了一個Resource Bundle。Resource Bundle的持久化消息文本存儲在資源文件中,其擴展名為“.properties”,里面存放的都是“鍵/值”。
在struts-config.xml中對Resource Bundle的配置代碼:
<message-resources parameter=”ApplicationResources”/>
表示默認的資源文件應該是applicationResources.properties,存放在應用程序的根目錄"WEB-INF目錄"classes目錄下。如果應用程序需要支持中文用戶,要在相同目錄下創建一個包涵中文消息的資源文件,文件名必須為applicationResource_zh_CN.properties。
   7、修改login.jsp頁面
    <html:form action="login.do" method="post"> 
    <bean:message key="label.username"/> 
    <html:text property="username" /><html:errors property="username"/> 
    <br /> 
    <bean:message key="label.password"/> 
    <html:text property="userpass" /><html:errors property="userpass"/> 
    <br> 
    <input type="submit" name="Submit" value="<bean:message key="button.submit"/>"> 
    <input type="reset" value="<bean:message key="button.reset"/>">
</html:form>

<bean:message/>:用于訪問web應用資源的bean標簽,顯示Resource Boundle中的內容。 8、運行程序 
     1)如果你的瀏覽器默認設置為中文,你鍵入地址,將看到的頁面如下:



 2)把你的瀏覽器的設置為英文,然后刷新頁面,如下圖:





提示:如果你的web應用程序面對多個國家的話,實現不同語言的切換,現在一切都方便了,不過java對中文的支持并不好,并不是什么地方都可以使用中文的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉县市| 晋中市| 宁都县| 安福县| 丹巴县| 全州县| 城固县| 随州市| 梨树县| 麻江县| 商洛市| 武鸣县| 陕西省| 长治市| 林西县| 喜德县| 鹤山市| 龙门县| 习水县| 新沂市| 丁青县| 河南省| 蛟河市| 皋兰县| 连山| 通辽市| 商都县| 调兵山市| 福州市| 仙游县| 神池县| 元氏县| 托克托县| 汾西县| 陵水| 信丰县| 陆丰市| 吉木乃县| 夏邑县| 祥云县| 那曲县|