程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> Sturts2的國際化處理

Sturts2的國際化處理

編輯:關於JSP

2.國際化處理步驟 <1>建立資源文件 資源文件的命名規則: 默認的命名為:             文件名前綴.properties        根據語言的命名為:               文件名前綴.語言種類.properties 例如:\ 分別為英文(美國)、中文、默認的命名規則   Csdn_zh_CN.progperties內容: \ 注意:資源文件中的內容不能出現中文,所以要對中文進行轉換。 轉換:  對於中文的屬性文件,我們編寫好後,應該使用jdk提供的native2ascii命令把文件轉換為unicode編碼的文件。命令的使用方式如下: native2ascii  源文件.properties  目標文件.properties   但是 Myeclipse智能,自動轉化。 <2>在struts.xml文件中配置常量 A.當資源文件位於src路徑下: <!-- 國際化資源文件的基本名稱 csdn就是基礎名稱-->    <constant name="struts.custom.i18n.resources" value="csdn"/>   B.當資源文件位於包中: <!-- 國際化資源文件的基本名稱-->    <constant name="struts.custom.i18n.resources" value="包名.csdn"/>   <3>獲取國際化標簽 A.在jsp頁面中獲取國際化標簽          <body>    登陸頁面    <br>第一種方法(xhml);    <s:form action="" namespace="/csdn"method="post" theme="xhtml">       <!-- key:指定國際化資源中的值 -->       <s:textfield name="name"key="name"></s:textfield>       <!-- showPassword是否顯示密碼 -->       <s:password name="pass"key="pass" showPassword="true"></s:password>       <!-- submit中用OGNL標簽來獲取國際化的值    OGNL標簽:%{getText("name")} -->       <s:submit value="%{getText('login')}"></s:submit>    </s:form>      第二種方法(simple);    <s:form ation="" namespace="/csdn"method="post" theme="simple">       <!-- 獲取國際化資源中的值 -->       <s:text name="name"></s:text>       <s:textfield name="name"></s:textfield>       <br />       <s:text name="pass"></s:text>       <s:password name="pass"value="123" showPassword="true"></s:password>       <br />       <!-- submit中用OGNL標簽來獲取國際化的值    OGNL標簽:%{getText("name")} -->       <s:submit value="%{getText('login')}"></s:submit>    </s:form>     </body> \   B.在action中獲取國際化標簽 System.out.println(getText("nameeorr")); 采用getText("nameeorr")方法獲取 注:如果在配置文件中有點位符的情況,處理方法如下:    資源文件的內容:\   A.在jsp頁面中獲取占位符: <s:text name="wellcome">    <!-- 第一個值 -->      <s:param>        <s:property value="aa"/>      </s:param>            <!-- 第二個值 -->     <s:param>中國java</s:param> </s:text>   效果圖: B.在action中獲取點位符: System.out.println("帶占位符:");       List<String> args= new ArrayList<String>();       args.add("ww");       args.add("坑你坑你坑死你");       System.out.println("第一種方法。。。"+getText("wellcome",args));             System.out.println("第二種方法。。。"+getText("wellcome",new String[]{"花花","小貓小狗"}));   效果圖:\   3.包范圍資源文件 在一個大型應用中,整個應用有大量的內容需要實現國際化,如果我們把國際化的內容都放置在全局資源屬性文件中,顯然會導致資源文件變的過於龐大、臃腫,不便於維護,這個時候我們可以針對不同模塊,使用包范圍來組織國際化文件。   方法如下: 在java的包下放置package_language_country.properties資源文件,package為固定寫法,處於該包及子包下的action都可以訪問該資源。當查找指定key的消息時,系統會先從package資源文件查找,當找不到對應的key時,才會從常量struts.custom.i18n.resources指定的資源文件中尋找  

\

\

\

  4.action范圍資源文件: 我們也可以為某個action單獨指定資源文件,方法如下: 在Action類所在的路徑,放置ActionClassName_language_country.properties資源文件,ActionClassName為action類的簡單名稱。   當查找指定key的消息時,系統會先從ActionClassName_language_country.properties資源文件查找,如果沒有找到對應的key,然後沿著當前包往上查找基本名為package 的資源文件,一直找到最頂層包。如果還沒有找到對應的key,最後會從常量struts.custom.i18n.resources指定的資源文件中尋找。 5.JSP中直接訪問某個資源文件 利用struts2 提供i18n標簽輸出國際化信息 <!-- 固定包下的資源文件 -->    <s:i18n name="www.csdn.pakage">       <s:text name="wellcome">          <s:param>李三</s:param>          <s:param>www.qq.com</s:param>       </s:text>    </s:i18n> struts2為我們提供了<s:i18n>標簽,使用<s:i18n>標簽我們可以在類路徑下直接從某個資源文件中獲取國際化數據,而無需任何配置: <s:i18n name=“csdn">    <s:text name=“welcome”/> </s:i18n> csdn為類路徑下資源文件的基本名。   如果要訪問的資源文件在類路徑的某個包下,可以這樣訪問: <s:i18n name=“cn/csdn/action/package">       <s:text name="welcome">              <s:param>小張</s:param>       </s:text> </s:i18n> 上面訪問cn.csdn.action包下基本名為package的資源文件。

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