struts2国际化

来源:互联网 发布:知否 顾廷烨爱明兰 编辑:程序博客网 时间:2024/04/28 12:24

一、    全局范围

1) 首先写好资源文件

globalMessage_en_US.properties:

welcome=welcome to gather shellsite

globalMessage_zh_CN.properties:

welcome=\u6b22\u8fce\u6765\u5230\u0067\u0061\u0074\u0068\u0065\u0072\u0020\u0073\u0068\u0065\u006c\u006c\u7f51

文件名为baseName_语言_国家或地区,通常将此类文件编码定为ISO-8859-1, 不支持的字符用unicode编码。

2) struts2配置文件

<constantname="struts.i18n.encoding"value="ISO-8859-1"></constant>

<constant name="struts.custom.i18n.resources"value="globalMessage"></constant>

Value是资源文件的baseName。这样在全局范围内都可以用这个文件中定义的值。

3) 使用

在JSP文件中<s:textname="welcome"></s:text>

Action中,要让Action继承ActionSupport,然后调用

String text=this.getText("username");

4) 带有占位符

welcome={0},welcometogathershellsite,{1}

标号从0开始,JSP中

<s:textname="welcome">

    <s:param>Tom</s:param>

    <s:param>play</s:param>

</s:text>

<s:param>依次指定参数

Action中:

String text=this.getText("welcome",newString[]{"Tom","play"});

用字符串数组依次指定各个值。

二、    包范围

package_en_US.properties,package_zh_CN.properties文件基础文件为固定的package,位于当前包或子包下面的Action都可访问到,注意如果要想让页面能访问到,这个页面必须由可访问这个文件的action转发,也就是这个action必需继承ActionSupport类。

三、    Action范围

文件基础名为action的类名,同包范围,如果要想让页面能访问到,这个页面必须由可访问这个文件的action转发,也就是这个action必需继承ActionSupport类。

四、  搜索顺序

首先找action范围的,找不到在当前包中找,再找不到往上层包中找,包范围的都找不到就找全局范围的。还是找不到就显示key的值。

五、  在页面中明确指定资源文件名

<s:i18nname="com/gathershell/action/ForwardAction">

   <s:text name="welcome">

      <s:param>郡主</s:param>

      <s:param>学习</s:param>

   </s:text>

</s:i18n>

<s:i18n> name写明包名和资源文件基础名,这样就会直接在这个文件中找。



原创粉丝点击