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的文件。

加载资源文件的顺序

  类资源->包资源->全局资源

原文地址:https://www.cnblogs.com/caoyc/p/5588579.html