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 閱讀(640) 評論(0)  編輯  收藏 所屬分類: java

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 团风县| 尖扎县| 新疆| 晋州市| 贞丰县| 宁都县| 连云港市| 阆中市| 富平县| 潜山县| 恩施市| 出国| 阿坝| 巴彦淖尔市| 新民市| 互助| 时尚| 同德县| 垫江县| 荥经县| 刚察县| 富顺县| 旺苍县| 清流县| 乌鲁木齐市| 苍南县| 嘉峪关市| 巫山县| 凤阳县| 清河县| 绥阳县| 乌拉特中旗| 望奎县| 古丈县| 三河市| 东辽县| 梓潼县| 平顺县| 万载县| 鹤壁市| 当阳市|