Struts2(15):Struts2的国际化续

Struts2中action错误的国际化

在action类的validate方法中,对ActonError错误提示进行国际化,其中getText是ActionSupport类中的方法。

	public void validate() {
		List list = new ArrayList();
		list.add(username);
		if(null == username || username.equals("") || username.length() < 6){
			//传入资源文件的KEY
			this.addActionError(this.getText("username.invalid",list));
			//或可以使用数据,如下,推荐使用数据,效果和用List一样
//			this.addActionError(this.getText("username.invalid",new String[]{username}));
		}
	}

 message_en_US.properties

username.invalid = username "{0}" invalid

 message_zh_CN.properties

username.invalid = \u7528\u6237\u540d "{0}" \u4e0d\u6b63\u786e

register.jsp

<tr>
  	<td style="color:red"><s:actionerror></s:actionerror></td>
  </tr>

<s:actionerror>标签用于接收actionerror类型的错误。

当将IE的默认语言设为英文时, 提示语言将用英文,如username "abc" invalid

当将IE的默认语言设为中文时, 提示语言将用中文,如用户名 "abc" 不正确

Struts2的资源文件包括包级别和类级别

包级别资源文件的名称格式为:package_en_US.properties,它建立在具体的某个包目录下,当如果全局资源文件与包级资源文件存在相同名称KEY时,则优先取包级别资源文件中的条目。

类级别资源文件的名称格式为:类名_en_US.properties,它也必须与该类在同一个包中,当如果包级别资源文件与类级别资源文件存在相同名称KEY时,则优先取类级别资源文件中的条目。

最后还可以通过Struts2的标签<s:i18n/>来指定某个资源文件,来实现国际化

 以下temp即为src目录下的temp_xx_XX.properties资源文件

<s:i18n name="temp">
	<s:text name="hello"></s:text>
</s:i18n>

猜你喜欢

转载自mynote.iteye.com/blog/1070425
今日推荐