`

struts2之国际化

阅读更多
struts2国际化
理解:我们一次编写的东西,当浏览器中的语言呈现的是中文时,显示中文提示信息。浏览器中的语言是英文时,显示英文提示信息。

国际化文件名都有这样的部分(_en_US.properties),其中en表示:适合向用户显示的语言环境语言名。US表示:适合向用户显示的语言环境国家/地区名的两字母简写。

笔记会记录四方面的国际化(页面的国际化,输入校验的国际化)

一:页面国际化

看一下标签:
<s:text name="addUser"></s:text>

其中标签对<s:text></s:text>提示文本信息会国际化,属性name则是说明会用到的全局属性文件(message_en_US.properties)中的key,
message_en_US.properties内容如下:
addUser = Add User Information

当然名字message_en_US中的message可以随便写,
只需要在struts中配置一下,如下(注意这样配置的是全局的实行文件):
<constant name="struts.custom.i18n.resources" value="message"></constant>


这样页面输出信息的国际化就完成了:
1:协商标签对<s:text name="addUser"></s:text>
2:新建属性文件message_en_US.properties和message_zh_CN.properties
3:在struts中注册属性文件名message




二:输入校验国际化

定义俩文件RegisterAction_en_US.properties
内容(username.xml.invalid =RegisterAction information)
和RegisterAction_zh_CN.properties
内容(username.xml.invalid =\u7C7B\u7EA7\u522B\u63D0\u793A\u4FE1\u606F)

两个属性文件都是局部属性文件,和action所在的包同属于src
我们在教研框架中运用如下:
<field name="username">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message key="username.xml.invalid"></message>
		</field-validator>
</field>

里面的message标签中的key就是属性文件中的key

我们还可以直接在action文件中的validate方法中,直接通过调用ActionSupport类的getText方法实现国际化,
如下:
this.addActionError(this.getText("username.invalid"));

解释:里面的getText方法本身是实现国际化的,所以里面可以直接调用全局属性文件中定义的key(username.invalid)


三:页面指定调用特定的属性文件
<s:i18n name="temp">
	<s:text name="hello"></s:text>
</s:i18n>

属性文件temp_en_US.properties可以放在源文件目录的任意位置

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics