struts2中的国际化问题

国际化

1.全局范围的资源文件
在src目录下简历资源文件,取名过则为:baseName_laguage_country.properties,如wzh_en_US.properties,wzh_zh_CN.properties,
然后在struts.xml中配置
 <constant name="struts.custom.i18n.resources" value="wzh" />

value为资源文件名称的baseName

2.在页面或action中访问国际化信息
2.1> 在jsp页面上显示方式
  <s:text name="welcome" />

name为资源文件中的key值
2.2> 在action中访问
action类必须继承ActionSupport ,使用getText()方法得到国际化信息,该方法的第一个参数用于指定资源文件中的key值。
如action中
 public String execute(){
ActionContext.getContext().getSession().put("message", this.getText("welcome")) ;
return "success";
}
2.3> 在表单标签中,通过key属性指定资源文件中的key值。
如:<s:textfield key="welcome" />
3.输出带有占位符的国际化信息
3.1> jsp页面输出
 <s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
3.2> 在action中设置占位符的国际化信息
在action中
 public String execute(){
ActionContext.getContext().put("message", this.getText("welcome",new String[]{"wzh","study"})) ;
return "success";
}
在jsp上${message }显示国际化信息

4.包范围的资源文件
在java的包下放置package_language_country.properties资源文件,package为固定写法
如: package_en_US.properties,package_zh_CN.properties .
处于该包及子包下的action都可以访问该资源,当查找指定key的消息时,系统会先从package资源文件下查找,当找不到对应的key时才会从指[color=red]struts.custom.i18n.resources[/color] 的资源文件中查找,

另外:需注意的是,只有经过action跳转才会现在package下查找,如找不到则到指定的资源文件下查找,
如果没有经过action,则只会到指定的资源文件下查找

5. action范围的资源文件
在action类所在的路径下放置[color=blue]ActionClassName_language_country.properties[/color]资源文件,ActionClassName为action的简单名称。当经过action查找指定资源时,系统会先在action路径下查找,然后在package下查找,如果没找到,最后会在指定的资源文件下查找。

6 .jsp中直接访问指定的资源文件下的国际化信息
所谓的jsp直接访问就是没有经过action跳转的
如:
 访问全局资源文件=
<s:i18n name="wzh">
<s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
<br/>
访问包下的资源文件=
<s:i18n name="cn/itcast/action/package">
<s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
<br/>

访问action 范围资源文件=
<s:i18n name="cn/itcast/action/HelloWorldAction">
<s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
<br/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值