Struts2的国际化入门
Posted JustDo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2的国际化入门相关的知识,希望对你有一定的参考价值。
Struts2的国际化入门
Struts2国际化是建立在Java国际化的基础上的,一样是通过提供不同国家/语言环境的消息资源,然后通过ResourceBundle加载指定Locale对应的资源文件,再取得该资源文件中指定key对应的消息--整个过程与JAVA程序的国家化完全相同,只是Struts2框架对JAVA程序国际化进行了进一步封装,从而简化了应用程序的国际化.
Struts2需要国际化的部分
a、类型转换:
b、数据校验:
c、验证框架xml配置文件的国际化:RegisterAction-validation.xml文件<message key="username.xml.invalid"/>
d、JSP页面的国际化:<s:text name="addUser"/>
e、Action的国际化:利用ActionSupport类提供的getText()方法.
Struts2中加载全局资源文件
方式一:struts.xml
<constant name="struts.custom.i18n.resources" value="baseName"/>
方式二:struts.properties
struts.custom.i18n.resources=baseName
Struts2访问国际化消息主要有如下三种方式:
a、JSP页面:<s:text name="key"/>
b、Action类中:使用ActionSupport类的getText方法。
c、表单元素的Label里:为表单元素指定一个key属性
Struts2中提供了如下两种方式来填充消息字符串中的占位符
a、JSP页面,在<s:text.../>标签中使用多个<s:param.../>标签来填充消息中的占位符。
b、Action中,在调用getText方法时使用getText(String aTextName,List args)或getText(String key, String[] args)方法来填充占位符。
加载资源文件的方式
a、加载全局资源文件: <constant name="struts.custom.i18n.resources" value="baseName"/>
b、包范围资源文件 :为Struts2指定包范围资源文件的方法是,在包的根路径下建立多个文件名为package_language_country.properties的文件,一旦建立了这个系列的国际化资源文件,应用中处于该包下的所有Action都可以访问该资源文件。需要注意的是上面的包范围资源文件的baseName就是package,不是Action所在的包名。
c、Action范围资源文件:在Action类文件所在的路径建立多个文件名为ActionName_language_country.properties的文件。
加载资源文件的顺序
类资源->包资源->全局资源
以上是关于Struts2的国际化入门的主要内容,如果未能解决你的问题,请参考以下文章