struts.xml中添加<constant name="struts.custom.i18n.resources" value="messageResource"></constant>
添加若干properties文件,
其中文件名为类似messageResource_zh_CN.properties
和messageResource_en_US.properties
在其中添加键值对,如果不是ascii文字,需要使用native2ascii文件进行解码
en_US
loginPage=Login Page
errorPage=Error Page
succPage=Success Page
failTip=Sorry , you are failed to connect.
succTip=welcome {0}, you connected successfully.
user=user name
pass=pass word
login=login
zh_CN
loginPage=\u767b\u9646\u9875\u9762
errorPage=\u9519\u8bef\u9875\u9762
succPage=\u6210\u529f\u9875\u9762
failTip=\u5bf9\u4e0d\u8d77\uff0c\u60a8\u4e0d\u80fd\u767b\u5f55
succTip=\u6b22\u8fce\uff0c{0},\u60a8\u5df2\u7ecf\u767b\u5f55\uff01
user=\u7528\u6237\u540d
pass=\u5bc6\u7801
login=\u767b\u9646
然后在页面上使用s标签输出其中的内容
表单标签使用<s:textfield name="username" key="user"></s:textfield>
key的方式进行输出
非表单标签可以使用
<s:text name="failTip"></s:text>进行输出
对于传入参数的{0}要这样进行输出
s:param中的内容就是传入的参数。这里使用的是登陆页面填入的username
<s:text name="succTip">
<s:param><s:property value="username" /></s:param>
</s:text>
还有一种最省事的做法就是在properties文件中使用表达式
${username},这样在拿出该键所对应的值的时候就会自动为其赋值。
Action的国际化
其中第一个是带参数的,第二个是不带参数的。
String text = getText("succTip" , new String[]{username});
System.out.println(text);
String text2 = getText("failTip");
System.out.println(text2);
输入校验时获得国际化信息的方法:
1.
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="name.requried"/>
</field-validator>
2.
<message>${getText("name.requried ")}</message>
这两种都可以
但是如果同时采用客户端校验的话,建议采用第二种,使用的是ActionSupport的getText方法,这种同时支持客户端校验。第一种不支持客户端校验,