1.配置国际化资源文件
I.Action范围资源文件:命名形式 ActionName_language_country.properties
II.包范围资源文件: 命名形式 package_language_country.properties 一旦建立该包下的所有Action都可以访问
III. 全局资源文件(推荐使用) :
命名形式 basename_language_country.properties
struts.xml <constant name="struts.custom.i18n.resources" value = "baseName" />
IV.国际化资源文件的加载顺序? –离Action范围近的资源文件先被加载
2.如何在页面上和Action类中访问国际化资源文件的value值
I. 在Action中继承 ActionSupport 类实现 TextProvider 接口,调用 getText(); 获取value值
II.在页面上,可以使用 s:text 标签 ; 对于表单标签,可以使用表单标签的 key 属性值对应资源文件
如果有占位符 , 可以使用 s:text 标签的 s:param 来填充!
可以利用标签和OGNL表达式 , 访问值栈(对象栈 Map栈)
非simple主题建议直接用 key , 也可以用label属性,但是需要进行 强制ognl解析 (%{getText(‘username’)}).
simple主题下 , key属性失效 , 需要用 s:text 标签来实现 , 其 name 属性 可以寻找资源文件对应的值
3.实现通过超链接切换语言
testI18n.action?request_locale=en_US
request_locale属性值有 en_US zh_CN分别代表英文中文,带参数到action以后 会自动检测.流程如图:
这样的话,即使切换完中英文执行其他跳转也不会变会原来的状态,因为已经存到了session中
自己总结的Demo http://download.csdn.net/download/a_novice_programmer/8914915
以上自己总结的国际化.不规范的地方请谅解!