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的国际化
- ActionSupport中有很多重载的getText的方法,这些方法可以实现国际化,当在验证出错时可以调用这些方法得到国际化的字符串,然后放到相应的error里面
l 配置的校验文件的国际化
- 在相应的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 国际化文件的优先级别:类级别>包级别>全局级别