zoukankan      html  css  js  c++  java
  • struts2--国际化

    1. 创建资源文件,放在action包里:App_en_US.properties, App_zh_CN.properties.

     在properties界面用add的方式添加变量,添加完成后, 打开source如下:

    login.username=username:
    login.password=password:
    login.email=email
    login.submit=submit
    login.username.isnull=username is null
    login.password.isnull=password is null
    login.email.isnull=email is null
    login.password.lengtherror=password length must be 4~6
    login.email.formaterror=email format is error
    login.field.isnull={0} is null
    label.username=username
    label.password=password
    label.email=email
    
    login.username=u7528u6237u540D:
    login.password=u5BC6u7801:
    login.email=u7535u5B50u90AEu4EF6
    login.submit=u786Eu5B9A
    login.username.isnull=u7528u6237u540Du4E0Du80FDu4E3Au7A7A
    login.password.isnull=u5BC6u7801u4E0Du80FDu4E3Au7A7A
    login.email.isnull=u7535u5B50u90AEu7BB1u4E0Du80FDu4E3Au7A7A
    login.password.lengtherror=u5BC6u7801u5FC5u987B4~6u4F4D
    login.email.formaterror=u7535u5B50u90AEu4EF6u683Cu5F0Fu4E0Du6B63u786E
    login.field.isnull={0}u4E0Du80FDu4E3Au7A7A
    label.username=u7528u6237u540D
    label.password=u5BC6u7801
    label.email=u7535u5B50u90AEu7BB1
    

      

    2. struts.xml加载属性文件, 配置在所有包最上面 struts里面, 添加下面这句话:

     <constant name="struts.custom.i18n.resources" value="App"></constant>
    

    3. login.jsp页面读取资源文件:

    //选择语言
    <a href="<%=path%>/language.action?request_locale=en_US">英文</a>|<a href="<%=path%>/language.action?request_locale=zh_CN">中文</a>

    <s:property value="getText('label.username')"/>
    <s:property value="getText('label.password')"/>
    <s:property value="getText('label.email')"/>
    <br><input type="button" value="<s:property value="getText('login.submit')"/>" onclick="javascript:document.loginForm.action='<%=path%>/user/login1.action';document.loginForm.submit();"/>

    4. struts.xml里在default包里添加:

     <action name="language">
        	<result>/login.jsp</result>
     </action>
    

      

    5.validation.xml里加载属性信息:

    validation.xml(UsersAction2-validationl.xml)里的出错信息也可以用国际化文件:

    ${getText("login.field.isnull",{getText("label.username")})} 传递参数, login.field.isnull里有{0}

    <!DOCTYPE validators PUBLIC 
            "-//Apache Struts//XWork Validator 1.0.2//EN" 
            "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
    <validators>
    	<field name="username">
    		<field-validator type="requiredstring">
    			<message>
    				${getText("login.field.isnull",{getText("label.username")})}
    			</message>
    		</field-validator>
    	</field>
    	
    	<field name="password">
    		<field-validator type="requiredstring">
    			<message>
    				${getText("login.field.isnull",{getText("label.password")})}
    			</message>
    		</field-validator>
    		<field-validator type="stringlength">
    			<param name="minLength">4</param>
    			<param name="maxLength">6</param>
    			<message key="login.password.lengtherror"></message>
    		</field-validator>
    	</field>
    	
    	<field name="email">
    		<field-validator type="requiredstring">
    			<message>
    				${getText("login.field.isnull",{getText("label.email")})}
    			</message>
    		</field-validator>
    		<field-validator type="email">
    			<message key="login.email.formaterror"></message>
    		</field-validator>
    	</field>
    </validators>
    

      

  • 相关阅读:
    debian下安装oracle10G
    【海洋女神原创】如何为工程添加一个Installshield不支持的语言艾泽拉斯之海洋女神翻译
    无论程序是否安装,都使setup.exe直接进入安装状态,不出现反安装;以及由此延伸出的同一安装程序允许在同一机器上安装多套软件的探讨
    个人收藏的一些资料(五)Installshield定制行为
    Installshield无人值守安装sqlserver脚本
    个人收藏的一些资料(二)MSI更新和补丁包的制作
    个人收藏的一些资料(三)MSI打包白皮书
    Installshield建立IE快捷方式的方法
    个人收藏的一些资料(一)Installshield制作友好的更新
    MyEclipse的自动提示太让人抓狂了,有没有什么办法改善?
  • 原文地址:https://www.cnblogs.com/wujixing/p/5183355.html
Copyright © 2011-2022 走看看