zoukankan      html  css  js  c++  java
  • strut2 国际化

    struts2 国际化分为:前台 页面国际化,Action类国际化,配置文件国际化。

    1. 首先制定全局国际化资源文件,在struts2.xml中加入一个常量配置:<constant name="struts.custom.i18n.resources" value="message"></constant>
    2. 国际化资源文件的名字规则:

               xxx_语言_国家.properties
               message_zh_CN.properties(简体中文资源文件)
               message_en_US.properties(美国英语资源文件)

         (1)前台页面国际化

                (1).JSP页面上的国际化(使用struts2的<s:text .../>):

                Html代码:

    <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国际化:

    未国际化:

    Html代码 

      

        <s:textfield name="username" label="username"></s:textfield>  
        <s:textfield name="password" label="password"></s:textfield>  

    国际化后:

    Html代码 
        <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为例:

    未国际化:

    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>   

     国际化后:

    Xml代码  收藏代码
        <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 !

  • 相关阅读:
    [转]关于Activity和Task的设计思路和方法
    关于Zipalign的介绍和使用方法
    [转]Android 技术专题系列之九 -- 图形系统
    【转】如何调试跟踪Android源代码
    为程序添加版本自动更新功能(转+详细分析)
    【转】在 Eclipse 內,用 Ant 編譯你的 Android 程式
    android 用HttpURLConnection读网络
    步步为营 .NET 设计模式学习笔记 十、Builder(建造者模式)
    步步为营 .NET 设计模式学习笔记 八、State(状态模式)
    步步为营 .NET 设计模式学习笔记 十四、Decorator(装饰模式)
  • 原文地址:https://www.cnblogs.com/kailing-con/p/4197364.html
Copyright © 2011-2022 走看看