一、 全局范围
1) 首先写好资源文件
globalMessage_en_US.properties:
welcome=welcome to gather shellsite
globalMessage_zh_CN.properties:
welcome=\u6b22\u8fce\u6765\u5230\u0067\u0061\u0074\u0068\u0065\u0072\u0020\u0073\u0068\u0065\u006c\u006c\u7f51
文件名为baseName_语言_国家或地区,通常将此类文件编码定为ISO-8859-1, 不支持的字符用unicode编码。
2) struts2配置文件
<constantname="struts.i18n.encoding"value="ISO-8859-1"></constant>
<constant name="struts.custom.i18n.resources"value="globalMessage"></constant>
Value是资源文件的baseName。这样在全局范围内都可以用这个文件中定义的值。
3) 使用
在JSP文件中<s:textname="welcome"></s:text>
在Action中,要让Action继承ActionSupport,然后调用
String text=this.getText("username");
4) 带有占位符
welcome={0},welcometogather shellsite,{1}
标号从0开始,JSP中
<s:textname="welcome">
<s:param>Tom</s:param>
<s:param>play</s:param>
</s:text>
用<s:param>依次指定参数
Action中:
String text=this.getText("welcome",newString[]{"Tom","play"});
用字符串数组依次指定各个值。
二、 包范围
package_en_US.properties,package_zh_CN.properties文件基础文件为固定的package,位于当前包或子包下面的Action都可访问到,注意如果要想让页面能访问到,这个页面必须由可访问这个文件的action转发,也就是这个action必需继承ActionSupport类。
三、 Action范围
文件基础名为action的类名,同包范围,如果要想让页面能访问到,这个页面必须由可访问这个文件的action转发,也就是这个action必需继承ActionSupport类。
四、 搜索顺序
首先找action范围的,找不到在当前包中找,再找不到往上层包中找,包范围的都找不到就找全局范围的。还是找不到就显示key的值。
五、 在页面中明确指定资源文件名
<s:i18n name="com/gathershell/action/ForwardAction">
<s:text name="welcome">
<s:param>郡主</s:param>
<s:param>学习</s:param>
</s:text>
</s:i18n>
<s:i18n> name写明包名和资源文件基础名,这样就会直接在这个文件中找。