消息国际化i18n

struts 国际化资源文件的分成两类:

1.全局的国际化资源文件

   默认加载的:org/apache/struts2/struts-messages

   配置加载的 struts.xml中配置: 

   <constant name="struts.custom.i18n.resources" value="类路径下资源文件名1,类路径下资源文件名2...."></constant> 

 

2.Action类对应的资源文件

   在Action_validation中指定的message的key ,需要通过key查找对应的信息

  在jsp页面 国际化标签中指定的key,需要通过key查找对应的信息

  那么从哪个国际化资源文件中查询呢?

  如UserAction类,国际化资源文件查找顺序:

    如com.app.UserAction类,国际化资源文件查找顺序:

    1.UserAction.class.getName()+Locale

    2.UserAction直接实现的接口Class +Locale

    3.UserAction 父类Class+Locale

    4.UserAction 父类 直接实现的接口Class+Locale

    重复 3-4 直接到Object为止

     5.如果Action 实现了ModelDriven,则获取 Action.getModel() 对应的国际化资源文件(重复1--4)x

     6.Action所在的包名生成资源文件名“com.app.package”+Locale,没有找到则查上一级包名

     7. 如果 key中有“.” ,如 user.userId,则获取Action.getUser() 对应的国际化资源文件(重复1--4)(key变成了userId)

   8.  如果仍没有找到则到默认的国际化资源文件查找。 

 

 

类LocalizedTextUtil 实现了以上功能。

 

 
消息国际化i18n_第1张图片
 

 

你可能感兴趣的:(i18n)