struts2国际化文件配置



struts2国际化文件配置

struts2的国际化分三种情况:前台页面的国际化,Action类中的国际化,配置文件的国际化。

首先指定全局的国际化资源文件:
在配置文件struts.xml中引入

Xml代码  收藏代码
  1. <constant name=”struts.custom.i18n.resources” value=”message”></constant>

(注意位置)

在struts.properties文件中指定如下一行:

Xml代码  收藏代码
  1. struts.custom.i18n.resources=message

指定的国家化资源文件即为
xxx_语言_国家.properties
message_zh_CN.properties(简体中文资源文件)
message_en_US.properties(美国英语资源文件)

(1).JSP页面上的国际化(使用struts2的<s:text …/>):

Html代码  收藏代码
  1. <s:i18n name=”message”>
  2. <s:text name=”hello”>
  3. <s:param>${username}</s:param>
  4. </s:text>
  5. </s:i18n>

 

message_en_US.properties文件配置:
hello=hello world,{0}

message_zh_CN.properties文件配置:
hello=你好,{0}

(2)表单元素的Label国际化:

未国际化:

Html代码  收藏代码
  1. <s:textfield name=”username” label=”username”></s:textfield>
  2. <s:textfield name=”password” label=”password”></s:textfield>

国际化后:

Html代码  收藏代码
  1. <s:textfield name=”username” key=”uname”></s:textfield>
  2. <s:textfield name=”password” key=”pword”></s:textfield>

 

message_en_US.properties文件,配置:
uname=username
pword=password


message_zh_CN.properties文件,配置:
uname=用户名
pword=密码

(3).Action中的国际化:

未国际化:
this.addFieldError(“username”, “the username error!”);
this.addFieldError(“password”, “the password error!”);

国际化后:
this.addFieldError(“username”, “username.error”);
this.addFieldError(“password”, “password.error”);

message_en_US.properties文件配置:
username.error = the username error !
password.error = the password error!

message_zh_CN.properties文件配置:
username.error=用户名错误!
username.error=密码错误!

(4).配置文件中的国际化:

以输入校验的LoginAction-validation.xml为例:

未国际化:

Xml代码  收藏代码
  1. <field name=”username”>
  2. <field-validator type=”requiredstring”>
  3. <param name=”trim”>true</param>
  4. <message>username should not be empty!</message>
  5. </field-validator>
  6. <field-validator type=”stringlength”>
  7. <param name=”minLength”>6</param>
  8. <param name=”maxLength”>12</param>
  9. <message>username should be between ${minLength} and ${maxLength}!</message>
  10. </field-validator>
  11. </field>

国际化后:

Xml代码  收藏代码
  1. <field name=”username”>
  2. <field-validator type=”requiredstring”>
  3. <param name=”trim”>true</param>
  4. <message key=”username.empty !”></message>
  5. </field-validator>
  6. <field-validator type=”stringlength”>
  7. <param name=”minLength”>6</param>
  8. <param name=”maxLength”>12</param>
  9. <message key=”username.size”></message>
  10. </field-validator>
  11. </field>

message_en_US.properties文件配置:
username.empty = the username should not be empty !
username.size = the size of username shoule be between 6 and 12 !

message_zh_CN.properties文件配置:
username.empty =用户名不能为空 !
username.size = 用户名长度在6到12 !

注:message_zh_CN.properties这个国际化资源文件不允许包含非西欧字符。
Java提供了一个工具来处理该文件中的中文:native2ascii,这个工具可以在%JAVA_HOME%/bin路劲下找到。