java 国际化

 资源文件的命名:basename_language_country.properties
 
如果系统同时存在资源文件、类文件,系统将以类文件为主,而不会调用资源文件。
 
对于简体中文的Locale,ResourceBundle搜索资源的顺序是:
 
(1)baseName_zh_CN.class
 
(2)baseName_zh_CN.properties


(3)baseName_zh.class
 
(4)baseName_zh.properties
 
(5)baseName.class
 
(6)baseName.properties

加载资源文件的顺序
 
Action中加载资源文件,假设我们在某个ChildAction中调用了getText("user.title"),Struts 2.0的将会执行以下的操作:
 
(1)优先加载系统中保存在ChildAction的类文件相同位置,且baseName为ChildAction的系列资源文件。
 
(2)如果在(1)中找不到指定key对应的消息,且ChildAction有父类ParentAction,则加载系统中保存在ParentAction的类文件相同位置,且
 
   baseName为ParentAction的系列资源文件。
 
(3)如果在(2)中找不到指定key对应的消息,且ChildAction有实现接口IChildAction,则加载系统中保存在IChildAction的类文件相同位置,且
 
   baseName为IChildAction的系列资源文件。
 
(4)如果在(3)中找不到指定key对应的消息,且ChildAction有实现接口ModelDriven(即使用模型驱动模式),则对于getModel()方法返回的model对象,
 
   重新执行第(1)步操作。
 
(5)如果在(4)中找不到指定key对应的消息,则查找当前包下baseName为package的系列资源文件。
 
(6)如果在(5)中找不到指定key对应的消息,则沿着当前包上溯,直到最顶层包来查找baseName为package的系列资源文件。
 
(7)如果在(6)中找不到指定key对应的消息,则查找struts.custom.i18n.resources常量指定baseName的系列资源文件。
 
(8)如果经过上面的步骤一直找不到key对应的消息,将直接输出该key的字符串值。
 
对于在JSP中访问国际化消息,则简单的多,他们又可以分为两种形式:
 
(1)对于使用<s:i18n.../>标签作为父标签的<s:text.../>标签、表单标签的形式:
 
   a、将从<s:i18n.../>标签指定的国际化资源文件中加载指定key对应的消息。
 
   b、如果在a中找不到指定key对应的消息,则查找struts.custom.i18n.resources常量指定baseName的系列资源文件。
 
   c、如果经过上面步骤一直找不到该key对应的消息,将直接输出该key的字符串值。
 
(2)如果<s:text.../>标签、表单标签没有使用<s:i18n.../>标签作为父标签:
 
    直接加载struts.custom.i18n.resources常量指定baseName的系列资源文件。如果找不到该key对应的消息,将直接输出该key的字符串值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值