struts2 国际化信息
1.资源文件
中文文件messageResource.properties
loginPage=登录页面 username=用户名 password=password
英文文件messageResource_en_US.properties
loginPage=Login Page username=UserName password=Password
2.编码资源文件
dos下进入中文文件messageResource.properties所在的目录如E盘根目录下
cd/d e:/ native2ascii -encoding gb2312 messageResource.properties messageResource_zh_CN.porperties
最终在E盘根目录下生成已编码的messageResource_zh_CN.properties文件,内容如下:
loginPage=\u767b\u5f55\u9875\u9762 errorPage=\u9519\u8bef\u9875\u9762 succpage=\u6b22\u8fce\u9875\u9762 user=\u7528\u6237\u540d pass=\u7528\u6237\u5bc6\u7801
将这个文件和英文文件放到src目录下,也即全局资源文件。
其中:
全局资源文件:将资源文件放在src目录下,全局均可使用,命名为:baseName_语言名_国家名.properties
包资源文件:将资源文件放在某个包下,只允许这个包使用,命名为:包名_语言名_国家名.properties
类资源文件:将资源文件放到与类同一目录下,只允许该类使用,命名为:类名_语言名_国家名.properties
优先级:类资源文件 > 包资源文件 > 全局资源文件
3.配置struts
struts.xml里配置如下:
<constant name="struts.custom.i18n.resources" value="messageResouce" />
4.显示
jsp中显示如下:
<s:i18n name="messageResource"><s:text name="loginPage"/></s:i18n>
or
<s:i18n name="messageResource"><s:property value="%{getText('loginPage')}"/></s:i18n>
5.带有占位符的国际化信息
资源文件:loginPage= loginPage {0}
jsp显示如下:
<s:i18n name="messageResource"> <s:text name="loginPage"> <s:param>test</s:param> </s:text> </s:i18n>
代替占位符,不需要在jsp显示时输入参数的方法:
loginPage=${username},欢迎你
在上面的消息资源中,通过使用表达式,可以从ValueStack中取出该username属性值,自动填充到该消息资源中。