Struts2 国际化总结

   在src目录下的hellofile_en_US.properties 和 hellofile_zh_CN.properties是
测试程序Test3.java用到的

注:全局 资源文件message.properties放在src目录下,而且要在struts.xml中表明
     <constant name="struts.custom.i18n.resources" value="message"></constant>
 包级别 资源文件建在相应的包下,取名:package_en_US.properties 或 package_zh_CN.properties
 类级别 资源文件建在与相应类同一个包下,取名:类名_en_US.properties 或 类名_zh_CN.properties
 类级别资源文件优先级最高,全局资源文件优先级最低

国际化有四种情况

一、类型转换错误信息的国际化
二、数据校验看信息的国际化
 1、在action的validate()方法进行数据校验实现国际化,利用ActionSupport提供的getTest()方法
    例:this.addActionError(this.getText("username.invalid"));
        对应message_en_US.properties中
       username.invalid = username is invalid
       其中:username.invalid是资源文件message.properties(或其对应国际化文件)的key值
   
    若想输出带参数的错误信息,即{0}{1},则需用到getText(String key,String[]args)
    或getText(String key,List args);
    例:List list = new ArrayList();
       list.add(username);-----username是用户输入的名称,即校验的对象
       this.addActionError(this.getTest("usrname.invalid",list));
        对应message_en_US.properties中
       username.invalid = username {0} is invalid
 2、用校验框架进行数据校验
    校验框架产生的错误信息都放在fieldError中
    在message标签中指定它的key属性的值即可
    <validator type="requiredstring">
    <param name="fieldName">username</param>
     <message key="username.xml.invalid"></message>
    </validator>
三、JSP显示页面的国际化
    1、非表单(form)内容国际化
       1.1 在页面中用<s:text name="(key值)">来引用message.properties中的key值所队应得information(信息)
       1.2 用<s:i18n />标签来实现国际化
           在src下建资源文件例:marker_en_US.properties 和 marker_zh_CN.properties,文件名自定
           在jsp页面<s:i18n name="marker">   ---name指定资源文件的basename
               <s:text name="hello">    ---hello指定资源文件的需要的key值 
                  <s:param>world</s:param>  ---给文件中对应的{0}{1}赋值
               </s:text>
                </s:i18n>
          marker资源文件内容:hello = world {0}
    2、表单(form)内容国际化
       这时,form的theme属性不能设置为simple,然后给struts2标签设置key属性,即指定message.properties资源文件的key值
四、action中要输出信息的国际化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值