struts国际化

国际化Internationalization-I18N,本地化Localization-L10N)
Java程序国际化主要通过2个类完成:
 iava.util.ResourceBundle:用于加载一个资源包。
 java.util.Locale:对应一个特定的国家/区域、语言环境。


国际化的资源文件有3个范围:
全局范围:在src目录下:
<constant name="struts.custom.i18n.resources" value="globalMessage"/>
包范围:对应包的根目录下,且基本名称为package
Action范围: 该资源被放置在对应Action类文件的同级目录下,且基本名必须与Action类名一致,比如Action类名为:A.java,那么对应国际化文件命名为A_语言代码_国家代码.properties


调用方式资源文件的顺序是Action范围—>包范围—>全局范围


调用国际化资源
<s:text name=“welcome”>
<s:textfield key=“welcome”/>
<s:textfiled label=“%{getText(‘welcome’)}”/>或
<s:textfiled key=“%{getText(‘welcome’)}”

在校验文件中:
<message key="name.invalid"></message>

<message>${getText("name.invalid")}</message>


struts2国际化动态设置语种
在Struts 2.0中,通过ActionContext.getContext().setLocale(Locale arg)可以设置用户的默认语言。

Struts 2.0提供了一个名i18n的拦截器(Interceptor),并在默认情况下将其注册到拦截器链(Interceptor chain)中。它的原理为在执行Action方法前,i18n拦截器查找请求中的一个名为"request_locale"的参数。如果其存在,拦截器就将其作为参数实例化Locale对象,并将其设为用户默认的区域(Locale),最后,将此Locale对象保存在session的名为“WW_TRANS_I18N_LOCALE”的属性中。


例:
<a href="changLan.action?request_locale=zh_CN">中文登录</a>
<a href="changLan.action?request_locale=en_US">English Login</a>

注意:直白的说,想改变游览器的语言只需在提交Action的后面加上request_locale参数并给上其参数(区域语言代码,如:zh_CN是简体中文),struts2的拦截器会自动找到参数所代表的配置文件(***_zh_CN.properties)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值