现在的位置: 首页 > 综合 > 正文

struts2国际化

2018年05月14日 ⁄ 综合 ⁄ 共 1315字 ⁄ 字号 评论关闭

struts2加载全局资源文件

全局国际化资源文件名组成:baseName_language_country.properties,如:mess_en_US.properties,mess_zh_CN.properties,提供不同语言的资源文件后,系统会根据浏览者所在的Locale来加载对应的

加载时文件名只需写baseName即可,文件应置于类加载路径下,src编译后到classes

Java Api 参考获取Locale

language参考:getDisplayLanguage() --> getLanguage():语言 --> 简写

country参考:getDisplayCountry() --> getCountry():国家 -- > 简写

 

配置常量struts.custom.i18n.resources

struts.xml中配置:

<constant name=”struts.custom.i18n.resources” value=”baseName”/>

struts.properties中配置:

struts.custom.i18n.resources=baseName

 

struts2访问国际化资源

1.JSP<s:text name=”keyName” />

2.ActiongetText(“keyName”)

3.表单:在表单标签使用属性key=”keyName”

 

带占位符的国际化消息

定义key-value时可使用{n}作为占位符,n0开始。

填充占位符:

1.JSP

<s:text name=”keyName” />

<s:param>填充第1个占位符的内容</s:param>

<s:param>......</s:param>

<s:param>填充第n个占位符的内容</s:param>

</s:text>

2.Action

getText(String key,List args);

getText(String key,String[] args);

 

struts2占位符替代

使用表达式

key=valuevalue使用表达式:${name}

 

加载资源文件的方式

1.包范围资源文件:package_language_country.properties,位于对应的包路径

2.Action范围资源文件:ActionName_language_country.properties,位于对应的Action路径

3.临时指定资源文件:

<s:i18n name=”baseName” />

<s:text name=”keyName” />

</s:i18n>

 

<s:i18n name=”baseName” />

<s:textfield name=”name” key=”keyName” />

</s:i18n>

 

加载资源文件顺序

1.类文件相同位置

2.继承父类文件相同位置

3.实现接口文件相同位置

4.包下baseName”package”的资源文件

5.当前包上层至顶层baseName”package”的资源文件

6.struts.custom.i18n.resources=baseName

7.key的字符串值

【上篇】
【下篇】

抱歉!评论已关闭.