9.Struts2的国际化

Struts2国际化前要进行必要的配置,在struts.xml中配置

<constant name="struts.custom.i18n.resources" value="messages,information"></constant>

上面的配置指定了全局国际化文件的头名称:如中国为:messages_zh_CN.properties 英语为:messages_en_US.properties

l          Jsp页面的国际化

     <!-- <s:i18n />标签可以指定国际化信息出自哪个文件

        这个文件也不必要在struts.xml中指定。它的name即为资源文件的前缀名称

        国际化文件要放在classes的根目录下面

         -->

        <s:i18n name="i18nfileName">

        <s:text name="keyName">

        <s:param>jack</s:param>

        </s:text>

        </s:i18n>

        <!-- <s:text />标签不能指定国际化的信息出自哪个文件,所以它会在默认的资源文件中查找

        默认设置即为在struts.xml中的配置,它的name属性为资源文件的key值 -->

        <s:text name="hello">

        <!-- 可以替换占位符的参数 -->

        <s:param>jack</s:param>

        </s:text>

l          Actionerror与fielderror的国际化

  1. ActionSupport中有很多重载的getText的方法,这些方法可以实现国际化,当在验证出错时可以调用这些方法得到国际化的字符串,然后放到相应的error里面

l          配置的校验文件的国际化

  1. 在相应的message标签的key属性指定国际化文件中的key键值

l          struts内置信息的国际化

当struts向action字段赋值时要先进行数据转换,在这些转换过程中会出现一些类型不匹配的错误,这样就会产生一些信息,然后放在fielderror里面,对这些信息进行国际化时,可以将这类信息的国际化放在国际化文件中,struts会自动加载这些信息并使用。这些信息的键值可以在struts-messages.properties和xwork-messages.properties中找到!

l          Struts对国际化的精细控制。Struts的国际化文件分为全局文件,包级别的文件,类级别的文件。

全局文件放在classes的根目录下面,包级别的资源文件放在对应包下面,类级别的文件则与类文件放在一起。

它们的命名规则:全局级别的无规则,只要在struts.xml中指定即可,有些也不必要指定,只要用时指定即可。

包级别的文件命名规则为:package_zh_CN.properties等,所有的包级别的国际化资源文件都叫这个名字

类级别的文件命名规则为:className_zh_CN.properties等,className为要国际化的类名

l          国际化文件的优先级别:类级别>包级别>全局级别

posted @ 2010-05-03 17:04  沉兮  阅读(833)  评论(0编辑  收藏  举报