声明:转。1。使用全局的资源文件,这适用于遍布于整个应用程序的国际化字符串,它们在不同的包(package)中被引用,如一些比较共用的出错提示; 
2。使用包范围内的资源文件。做法是在包的根目录下新建名的package.properties和package_xx_XX.properties文件。这就适用于在包中不同类访问的资源; 
3。使用Action范围的资源文件。做法为Action的包下新建文件名(除文件扩展名外)与Action类名同样的资源文件。它只能在 该Action中访问。如此一来,我们就可以在不同的Action里使用相同的properties名表示不同的值。例如,在ActonOne中 title为“动作一”,而同样用title在ActionTwo表示“动作二”,节省一些命名工夫; 
4。使用<s:i18n>标志访问特定路径的properties文件。 在使用这一方法时,请注意<s:i18n>标志的范围。在<s:i18n name="xxxxx">到</s:i18n>之间,所有的国际化字符串都会在名为xxxxx资源文件查找,如果找不 到,Struts 2.0就会输出默认值(国际化字符串的名字)。

解决方案 »

  1.   

    第4条,<s:il18n name="****">可以加路径么,如<s:il18n name="/text/text.properties">?
      

  2.   

    可以在 struts.xml 文件里的 <struts> 中加入
    <constant name="struts.custom.i18n.resources" value="资源文件相对路径/文件名" />
    简单的话,一般都放在class根目录下然后如2楼所说:
    2。使用包范围内的资源文件。做法是在包的根目录下新建名的package.properties和package_xx_XX.properties文件。
    这就适用于在包中不同类访问的资源;最后页面上用<s:text name="键名"/>调用
      

  3.   

    请参考我的帖子
    http://topic.csdn.net/u/20081107/11/71c78354-35fa-4be8-b9b4-d353a992b9bd.html
      

  4.   

    1楼,3楼都可以,如果导入jstl标签库的话,在页面就可以绑定消息文件,加以引用,如果是类里的话,还可以自己写一个Bandle resouce函数。路径当然就可以随便定义了。
      

  5.   

    资源文件太多是要分开来像这样就OK了,例如:我在
    per.zdx.cfg.i18n包下面配置了msg1.properties、msg1.properties
    然后在struts.xml中配置
    <constant name="struts.custom.i18n.resources" value="per.zdx.cfg.i18n.msg1.properties,per.zdx.cfg.i18n.msg2.properties" />你也可以在struts.xml中配置<constant name="struts.action.extension" value="do,action,hmt" />
    给分哦,哈哈
      

  6.   

    包级国际化资源配置文件:在java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。
    action级国际化资源配置文件:可以为某个action单独指定资源文件,方法如下:
    在Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassName为action类的简单名称。