Struts2权威指南总结9:国际化

本文详细介绍了Struts2框架的国际化实现,包括ResourceBundle的关键作用、资源文件命名、国际化流程、占位符的使用、类文件替代资源文件、struts.xml配置、JSP与Action中如何输出国际化信息,以及如何处理用户选择的语言环境。还提到了Struts2的i18n拦截器在自动切换语言环境中的作用。
摘要由CSDN通过智能技术生成

1,国际化主要通过以下三个类完成:


2,资源文件的命名有以下三种形式:


国际化的关键类是ResourceBundle,他有一个静态方法:getBundle(String baseName,Locale locale),上面的方法根据locale加载资源文件,而locale就代表一个国家/语言。

3,国际化流程:


4,国际化配置文件中使用占位符:

提供一个MyResource_en_US.properties,内容是:

Msg=Hello,{0}!Today is {1}

提供一个MyResource_zh_CN.properties,内容是:

Msg=你好,{0}!今天是{1}

需要使用MessageFormat类。有一个静态方法:format(String pattern,Object... values)

该方法返回后面的多个参数值填充前面的pattern字符串,其中pattern字符串就是一个带占位符的字符串。

5,使用类文件替代资源文件。即将所有的key-value对存入class文件。


6,struts2的国际化,在struts.xml中配置struts.costom.i18n.resources常量,该常量的值就是国际化资源文件的baseName。

7,访问国际化信息,可以在JSP中使用标签输出国际化信息,也可以在Action中输出国际化信息。

在JSP中,通过<s:text... />输出,可指定一个name属性,代表资源文件的Key。

在Action中用getText(),接收一个name参数,定义了国际化资源文件的key。

在struts2的<s:form>表单中的元素里,可以通过key属性指定国际化信息。

例如<s:textfield name=”username” key=”user”/>

在JSP中<s:text>的中添加字标签<s:params>


如果在Action中填充占位符,可以通过getText(String key,String[] args)方法填充占位符。第二个参数args将用来填充占位符。

 

在国际化文件中使用表达式${username}可以从值栈中获取username。

 

8,包范围资源文件:package_language_country.properties,

Action范围的资源文件:ActionName_language_country.properties

临时指定资源文件:使用struts2标签<s:i18n .../>,如果将<s:i18n.../>作为<s:text>的父标签,则<s:text>标签将会直接加载<s:i18n.../>标签里指定的国际化资源文件。表单标签的key属性将会加载国际化信息。

 

9,用户选择程序语言,用户在页面通过下拉列表选择自己使用的语言环境,整个系统将换成用户指定的语言环境。Struts2提供了一个i18n的拦截器,且在默认拦截器栈中。I18n拦截器在执行Action之前,自动查找请求中一个名为request_locale的参数。如果存在,拦截器就将其作为参数转换成Locale对象,将其设置为用户默认的Locale(代表国家/语言环境)。I18n还会将上面生成的Locale对象保存在用户Session名为“WW_TRANS_I18N_LOCALE”的属性中,一旦用户的Session中有这个,则该属性指定Locale将会作为浏览者的默认Locale。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值