Struts 2 国际化与资源文件

每篇一囧:国际化很不错,但在国内基本用不着 ---- by.某某教学视频

1.全局范围资源文件
2.包范围资源文件
3.action范围资源文件
4.带有占位符号的资源文件
5.不配置获取资源文件

 

======================  华丽丽的分割线  ======================

 

1.全局范围资源文件

 

1.1. 全局资源文件概述

全局范围的资源文件:全局,即整个项目应用都可访问到.

建立全局资源文件,需配置一个名为:baseName_language_country.properties 的资源文件。

其中baseName为资源文件的基本名,可以自定义。language是语言,country是国家。如:

中国:baseName_zh_CN.properties

台湾:baseName_zh_TW.properties  (这让人很无语,若有能力,定要把这矫正,外国人居然把台湾当国家)

美国:baseName_en_US.properties

 

1.2. 使用全局资源文件

第一步,建立资源文件:

global_zh_CN.properties

name=\u6797\u54F2

global_zh_CN.properties
name=L.z.

第二步,配置常量,指点全局资源文件

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

<package name="internation" namespace="/internation" extends="struts-default">
<action name="international" class="cn.hasone.test.InternationalTest">
<result>/international.jsp</result>
</action>
</package>

配置 struts.custom.i18n.resources 的常量。

详情查看:http://www.cnblogs.com/loveis/articles/2005034.html

第三步,编写JSP页面:international.jsp  

<%@ taglib uri="/struts-tags" prefix="s"%>
Hello,
<s:text name="name"></s:text><br>

第四步,编写action:InternationalTest.java 

1 package cn.hasone.test;
2
3  import com.opensymphony.xwork2.ActionSupport;
4
5  public class InternationalTest extends ActionSupport {
6
7 public String execute() throws Exception {
8 // 通过继承ActionSupport,然后使用getText()方法,即可在action中访问.
9   System.out.println(this.getText("name"));
10 return SUCCESS;
11 }
12
13 }

 

======================  华丽丽的分割线  ======================

 

2.包范围资源文件

 

在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源文件中,显然会导致资源文件变得过分庞大,臃肿。这时,就需要把国际化的内容分割成模块。

包范围资源文件很简单,和上面类似,只需名字为:package_language_country.properties(固定写法,无法自定义)
需放置在使用他的action累的所在包中。
处于该包与子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从包资源文件中查找,若找不到,则会在全局范围文件中寻找。

 

======================  华丽丽的分割线  ======================

 

 
3.action范围资源文件
 

只针对某个action的资源文件。
在action类所在的包底下,放置名为这种格式的资源文件:ActionClassName_language_country.properties
ActionClassName为简单名称。

  

======================  华丽丽的分割线  ======================

 

4.带有占位符号的资源文件

 

 

第一步,建立资源文件

global_zh_CN.properties

name=\u6797\u54F2{0}

global_zh_CN.properties
name=L.z.{0}

资源文件中的占位符可以有多个。

第二步,如何在JSP中访问资源文件:

<s:text name="name">
<s:param>五月十七</s:param>
</s:text>

第三步,如何在action中访问资源文件:

// this.getText(String,String[]);
// getText(String,List<>);
this.getText("name",String[]{"五月十七",...})

 

注意:查找循序,从action范围->包范围->全局范围

 

======================  华丽丽的分割线  ======================

  

5.不配置获取资源文件

 

<s:i18n name="hasone">
<s:text name="welcome" />
</s:i18n>
<!-- hasone为资源文件的名称 -->
<s:i18n name="cn/itcast/action/hasone">
<s:text name="welcome">
<s:param>XXX</s:param>
</s:text>
</s:i18n>

posted on 2011-04-06 13:28  五月十七  阅读(2114)  评论(0)    收藏  举报

导航