struts2中有關國際化的應用

          資源文件的定義:
          在struts2里,資源文件被分成了三個級別:類級別,包級別,全局級別。
          執行時,將按照從小到大的順序依次搜索資源文件里的key值,直至找到。
          類級別的文件名定義:Action類名_語言碼_國家碼.properties,比如:LoginAction_en_US.properties,LoginAction_zh_CN.properties;
          如果是在全局中定義資源文件,則需要在struts.xml里配置,例子:<constant name="struts.custom.i18n.resources" value="message" />,其中message為資源文件的起始名;
          全局資源文件的位置在src\下。

          如何寫中文的資源文件:
          對于用于中文顯示的資源文件,以前需要使用java自帶的native2ascii.exe將中文內容轉換成對應的unicode,比較麻煩,而現在可以使用eclipse的插件自動轉換。
          eclipse插件:propertieEdit(一款由日本人開發的開源插件,可直接輸入中文,自動轉換)
          本地下載link:/Files/koradji/propertieEdit.zip
          下載后,將里面的目錄拷貝到eclipse下對應的目錄里,重新啟動eclipse就可以了。(可能需要在啟動命令里加上-clean)。

          在jsp里讀取資源文件的方法:
          畫面上的文字采用<s:text name="key" />寫;
          其他的,比如按鈕的value,textfield的label等采用<%{getText('key')}>寫,例子:<s:submit action="confirm" value="%{getText('confirm.button.label')}" /> ;
          或者,也可以使用這樣的寫法:<s:textfield name="username" key="page.index.text.username"></s:textfield>
          使用<s:i18n>可以指定臨時的資源文件,
          例子1:
              <s:i18n name="temp">  ----- baseName對應名稱的資源文件名
               <s:text name="info">  ----- info為資源文件中的key
                <s:param>張三</s:param>  ---- 指定第一個參數  {0}
                <s:param>23</s:param>     ---- 指定第二個參數  {1}
               </s:text>
              </s:i18n>
          例子2:
              <s:i18n name="org.scorpio.jh.struts2.i18n.web.action.LoginAction">
               <s:text name="page.index.text.username"></s:text>
               <s:text name="page.index.text.password"></s:text>
              </s:i18n>
          沒有實際應用過,猜測可能是在頁面上指定某個區域可以顯示與default locale不同的語言文字?

          在java里讀取資源文件的方法:
          Action類里(需要繼承ActionSupport),使用getText(String key)方法就能取得資源文件里的值;
          Business Services類里,使用ResourceBundle.getBundle(資源文件名).getString(key)方法取得值;

          如何切換畫面語言:
          在jsp里,在適當的位置放入下面的代碼:
          <s:url id="url" action="UnsubscribeNL_language">
               <s:param name="request_locale">en_US</s:param>
          </s:url>
          <s:a href="%{url}">English</s:a><br>
          <s:url id="url" action="UnsubscribeNL_language">
               <s:param name="request_locale">zh_CN</s:param>
          </s:url>
          <s:a href="%{url}">簡體中文</s:a>
          在發送請求時,struts會搜索攔截request_locale變量,并將該變量值設為default locale;
          在Action類里加入一個方法:public String language(),運行初始化返回本畫面即可;

          posted on 2009-12-30 15:17 koradji 閱讀(636) 評論(0)  編輯  收藏 所屬分類: java

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 林西县| 密山市| 松潘县| 濮阳县| 合山市| 德令哈市| 博野县| 十堰市| 寻乌县| 万安县| 余姚市| 义乌市| 顺平县| 湖南省| 抚松县| 陆良县| 霍林郭勒市| 蒙山县| 怀化市| 汉沽区| 钦州市| 长春市| 南宁市| 达孜县| 锡林浩特市| 砚山县| 北宁市| 慈溪市| 永康市| 瑞丽市| 华亭县| 赞皇县| 扎兰屯市| 井冈山市| 甘孜县| 彭泽县| 星子县| 鸡西市| 海伦市| 滦南县| 拉孜县|