返回列表 发帖

[Struts2.1权威指南] 《struts2权威指南》中包资源文件寻求解惑

《struts2权威指南 基于webwork核心的mvc开发》 第299页

讲到关于“包资源文件”的用法,有两个地方,看了后,还是理解得不太清楚,还是有些模糊,特来向站长请教了

假设有如下一些包资源文件是放在建在项目的src(根目录下)
  1. message_zh_CN.properties
  2. message_en_US.properties

  3. user_zh_CN.properties
  4. user_en_US.properties

  5. department_zh_CN.properties
  6. department_en_US.properties
复制代码
其中全局国际化资源文件baseName是message

第一个问题

是不是只需要在
struts.xml文件中加上
  1. <constant name="struts.custom.i18n.resources" value="message"/>
复制代码
其它两个资源文件不需要在struts.xml中作任何指定
就可能任意使用
  1. message_zh_CN.properties
  2. message_en_US.properties

  3. user_zh_CN.properties
  4. user_en_US.properties
  5. department_zh_CN.properties
  6. department_en_US.properties
复制代码
这六个资源文件中的key对应的值了?

第二个问题
baseName为 message,user,department对应的这三个资源文件中的key的命名,一般要求是唯一的,各不相同?
也就是说在message文件中指定的key,不要再在user或department资源文件再出现了?


第三个问题
package_language_country.properties 对于包文件中的命名,其中package是不是,就是我们任意命名的一个普通字符串,与 struts.xml中指定的package的名字,或与 项目结构或指定的package(如每个类文件中最顶端的那行package对应的名字) ,没有任何联系?

[ 本帖最后由 crazyit 于 2010-2-18 15:39 编辑 ]

提问赏金:6金币
获奖名单 : 还未派发赏金
成功的人不是赢在起点,而是赢在转折点!

成功的人不是赢在起点,而是赢在转折点!

TOP

成功的人不是赢在起点,而是赢在转折点!

TOP

我来回答吧。
1. 显然不是你这样的:
  1. <constant name="struts.custom.i18n.resources" value="message"/>
复制代码
你这行代码只是告诉系统加载message_zh_CN.properties、message_en_US.properties等baseName为message的资源文件。与user_zh_CN.properties、department_zh_CN.properties等没有关系。
2. 各种资源文件中的key可以不相同。   
   当资源文件的key冲突时,Action范围的消息key>包范围的消息key>全局的消息key。

3. package_language_country.properties 对于包文件中的命名,这是为了指定包范围的资源文件。
    有两个要求:
   A。 该资源文件必须放在相应的路径下下。比如org.crazyit.nosorry.action包的资源文件,必须把该资源文件放在classes\org\crazyit\nosorry\action路径下。
   B。 资源文件的文件名就是package_zh_CN.properties,注意那个package不要改!就是package这7个字母。
不要跟我说"对不起"!
如果"对不起"有用,那还要监狱做什么?

TOP

返回列表