Struts 2 国际化与资源文件

来源:互联网 发布:自学美术的软件 编辑:程序博客网 时间:2024/06/04 17:52

每篇一囧:国际化很不错,但在国内基本用不着 ---- 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>
复制代码
分类: Struct2
原创粉丝点击