Struts2简单配置国际化资源文件:
1:编写语言文件:
message_en_US.properties,在编写中文语言文件:message.properties,因为properties不支持非西欧语言文字,所以我们需要对message.properties进行编码处理,这里我们采用jdk自带工具native2ascii.exe进行转码,在cmd下,我们定位到文件目录,然后用native2ascii命令:native2ascii message.propertiest message_zh_CN.properties,此后我们得到了目标文件message_zh_CN.properties,我们将message_zh_CN.properties和message_en_US.properties拷贝到项目src下面。(注:此外可以使用类似editplus编辑器将文件另存为,并更改相应的文件保存格式)
2:配置struts.xml让struts找到我们的资源文件:
<constant name="struts.custom.i18n.resources" value="message" />
3:使用无站位符:
在jsp页面中使用:
<s:textfield name="name" key="资源文件中的key">
在Action中使用:
getText(“key”);
4:使用占位符:
JSP中使用:
<s:text name="name">
<s:param>:wjl</s:param>
</s:text>
name属性代表资源key,param的文本代表占位符的内容并可以使用EL表达式内容
在Action中使用:
getText(“key”,数组或List)
扩展:
加载资源文件顺序(查找名为Action名的.properties文件顺序):
Action所在-》Action父类所在-》Action实现的接口所在-》当前包下资源文件-》上级包资源-》struts.custom.i18n.resources制定的资源文件-》找不到就直接输出struts.custom.i18n.resources制定的资源文件的值
使用临时资源文件:
将对应的资源文件存在src下(注:src下除.java文件外的所有文件,系统自动加载到classes目录下),在jsp中使用:
<s:i18n name=”文件资源名”>
<s:textfield name=”username” key=” 属性名(key)” />
<submit key=” 属性名(key)” />
<!—可以制定参数的用法--à
<s:text name=”属性名(key)”>
</s:i18n>
Action范围资源文件:
将资源文件放置在Action同级目录下并修改名称为如下格式:
Action名称_language_country.properties
包范围资源文件:
将资源文件放置在package目录下并修改名称为如下格式:
package名称_language_country.properties