struts2加载全局资源文件
全局国际化资源文件名组成:baseName_language_country.properties,如:mess_en_US.properties,mess_zh_CN.properties,提供不同语言的资源文件后,系统会根据浏览者所在的Locale来加载对应的
加载时文件名只需写baseName即可,文件应置于类加载路径下,src编译后到classes
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.Action:getText(“keyName”)
3.表单:在表单标签使用属性key=”keyName”
带占位符的国际化消息
定义key-value时可使用{n}作为占位符,n从0开始。
填充占位符:
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=value:value使用表达式:${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的字符串值