§封Ja葬va§

          Struts2國際化

          struts2的國際化分三種情況:前臺頁面的國際化,Action類中的國際化,配置文件的國際化。

          首先指定全局的國際化資源文件:
          在配置文件struts.xml中引入
          <constant name="struts.custom.i18n.resources" value="message"></constant>(注意位置)

          在struts.properties文件中指定如下一行:
          struts.custom.i18n.resources=message

          指定的國家化資源文件即為
          xxx_語言_國家.properties
          message_zh_CN.properties(簡體中文資源文件)
          message_en_US.properties(美國英語資源文件)

          (1).JSP頁面上的國際化(使用struts2的<s:text .../>):

          <s:i18n name="message">
            <s:text name="hello">
              <s:param>${username}</s:param>
            </s:text>
          </s:i18n>

          message_en_US.properties文件配置:
          hello=hello world,{0}

          message_zh_CN.properties文件配置:
          hello=你好,{0}

          (2)表單元素的Label國際化:

          未國際化:
          <s:textfield name="username" label="username"></s:textfield>
          <s:textfield name="password" label="password"></s:textfield>

          國際化后:
          <s:textfield name="username" key="uname"></s:textfield>
          <s:textfield name="password" key="pword"></s:textfield>

          message_en_US.properties文件,配置:
          uname=username
          pword=password

          message_zh_CN.properties文件,配置:
          uname=用戶名
          pword=密碼

          (3).Action中的國際化:

          未國際化:
          this.addFieldError("username", "the username error!");
          this.addFieldError("password", "the password error!");

          國際化后:
          this.addFieldError("username", "username.error");
          this.addFieldError("password", "password.error");

          message_en_US.properties文件配置:
          username.error = the username error !
          password.error = the password error!

          message_zh_CN.properties文件配置:
          username.error=用戶名錯誤!
          username.error=密碼錯誤!

          (4).配置文件中的國際化:

          以輸入校驗的LoginAction-validation.xml為例:

          未國際化:
          <field name="username">
               <field-validator type="requiredstring">
                 <param name="trim">true</param>
                 <message>username should not be empty!</message>
               </field-validator>
            
               <field-validator type="stringlength">
                 <param name="minLength">6</param>
                 <param name="maxLength">12</param>
                 <message>username should be between ${minLength} and ${maxLength}!</message>
               </field-validator>
          </field>

          國際化后:
          <field name="username">
               <field-validator type="requiredstring">
                 <param name="trim">true</param>
                 <message key="username.empty !"></message>
               </field-validator>
            
               <field-validator type="stringlength">
                 <param name="minLength">6</param>
                 <param name="maxLength">12</param>
                 <message key="username.size"></message>
               </field-validator>
          </field>
             
          message_en_US.properties文件配置:
          username.empty = the username should not be empty !
          username.size = the size of username shoule be between 6 and 12 !

          message_zh_CN.properties文件配置:
          username.empty =用戶名不能為空 !
          username.size = 用戶名長度在6到12 !

          注:message_zh_CN.properties這個國際化資源文件不允許包含非西歐字符。
          Java提供了一個工具來處理該文件中的中文:native2ascii,這個工具可以在%JAVA_HOME%/bin路勁下找到。

          posted on 2009-03-05 10:38 §朱家二少§ 閱讀(700) 評論(0)  編輯  收藏 所屬分類: Struts2


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 濮阳县| 定结县| 德州市| 江源县| 鄂尔多斯市| 珠海市| 白城市| 东莞市| 汽车| 阜宁县| 砀山县| 德令哈市| 甘德县| 临朐县| 平果县| 华阴市| 隆德县| 宜良县| 南丹县| 黑河市| 乐亭县| 乌什县| 府谷县| 田东县| 开封市| 六安市| 昂仁县| 鞍山市| 乌鲁木齐市| 陕西省| 红安县| 凤山县| 任丘市| 淄博市| 渝北区| 宜兰县| 南宫市| 江都市| 锡林浩特市| 大悟县| 汉川市|