`
黑暗浪子
  • 浏览: 503137 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2讲义40

阅读更多

9.2  Struts2 国际化使用范围说明

在上 1 小节中介绍的 struts2 国际化应用中,定义了两个国际化属性文件来应用国际化。读者应该注意到这两个属性文件都是直接放在 src 根目录下,而且都是根据 struts.proerties 文件中 struts.custom.i18n.resources 常量的定义来命名自己的国际化属性文件名。其实它们被称之为全局国际化信息属性文件。但是由于开发中的 Web 项目都是很庞大,拥有很多数量的 JAVA JSP 代码,因此对于整个 Web 项目的国际化,把所有信息都定义在全局属性文件中有很大的弊病。其一是装载时候需要浪费很多时间,其二就是万一需要只更新某个 Action 或者 JSP 文件中的国际化属性定义,势必造成其它不需要更新的文件一起进行变更。引出很多不必要的错误和麻烦。因此 Struts2 设计者还引入了国际化使用范围的概念,让某些国际化属性文件只在某一特定范围内又效果。就算定义的 key 值相同,在不同的范围内 Action JSP 显示的 value 值各不相同。下面就让笔者具体介绍几种范围内的国际化应用。

9.2.1   Struts2 包范围属性文件国际化应用。

技术要点

以介绍占位符章节的示例来介绍包范围国际化应用。

包范围属性文件命名。

演示代码

包范围的中文属性文件内容:

<!------------文件名:package_zh_CN.properties-------------->
#中文属性定义文件
#用key=value格式定义页面上显示的内容
username=用户名
password=密  码
loginSubmit=登录
loginPage=登录页面
successPage=操作成功页面
welcome=欢迎您
user.required=请输入用户名!
pass.required=请输入密码!
successMessage={0},欢迎您!您的密码为{1},请注意保存。
 

 

包范围的英文属性文件内容:

<!------文件名:package _en_US.properties----->
#英文属性定义文件
#用key=value格式定义页面上显示的内容
username=User Name
password=User Password
loginSubmit=login
loginPage=login page
successPage=success page
welcome=Welcome You
user.required=please input your name!
pass.required=please input your password!
successMessage={0},Welcome !Your password is{1},please remember it。
 

 

代码解释

1 )以上节介绍占位符的示例作为本小节示例。这里只是将两个国际化属性文件的位置由 src 根目录下移到 src/com 文件夹下。相对于 JSP 页面没有影响。但是对于 JAVA 文件的国际化有很大影响。假设在 src 下新建其他文件夹,并在新建文件夹下创建了几个 JAVA 文件,则两个国际化属性文件并不会对这些新的 JAVA 文件进行国际化。而只对 src/com 下的 JAVA 文件进行国际化。这样和全局国际化属性文件相比就更加松耦合,并且可以将 src/com 下特有的需要国际化的信息进行国际化,没必要写在全局国际化属性文件中。读者可以理解为将全局国际化属性文件分割成一个个包范围的国际化。

2 )将这两个属性文件转移目录后,名字也需要相应改变。这里都改为“ package_ _language_country.properties ”格式。而属性文件中的内容不必要在做修改。运行后的效果图和之前雷同,因此这里也不在显示给读者看了。

注意:一定要写成 package 。它是 Struts2 中的固定名称,不能更改的,否则包范围的国际化会完全失效。

分享到:
评论
1 楼 raisun_1988 2009-10-30  
很好。谢谢。

相关推荐

Global site tag (gtag.js) - Google Analytics