您的位置:首页 > 编程语言 > Java开发

Struts2 国际化总结

2008-09-25 13:15 543 查看
在src目录下的hellofile_en_US.properties 和 hellofile_zh_CN.properties是
测试程序Test3.java用到的

注:全局 资源文件message.properties放在src目录下,而且要在struts.xml中表明
<constant name="struts.custom.i18n.resources" value="message"></constant>
包级别 资源文件建在相应的包下,取名:package_en_US.properties 或 package_zh_CN.properties
类级别 资源文件建在与相应类同一个包下,取名:类名_en_US.properties 或 类名_zh_CN.properties
类级别资源文件优先级最高,全局资源文件优先级最低

国际化有四种情况

一、类型转换错误信息的国际化
二、数据校验看信息的国际化
1、在action的validate()方法进行数据校验实现国际化,利用ActionSupport提供的getTest()方法
例:this.addActionError(this.getText("username.invalid"));
对应message_en_US.properties中
username.invalid = username is invalid
其中:username.invalid是资源文件message.properties(或其对应国际化文件)的key值

若想输出带参数的错误信息,即{0}{1},则需用到getText(String key,String[]args)
或getText(String key,List args);
例:List list = new ArrayList();
list.add(username);-----username是用户输入的名称,即校验的对象
this.addActionError(this.getTest("usrname.invalid",list));
对应message_en_US.properties中
username.invalid = username {0} is invalid
2、用校验框架进行数据校验
校验框架产生的错误信息都放在fieldError中
在message标签中指定它的key属性的值即可
<validator type="requiredstring">
<param name="fieldName">username</param>
<message key="username.xml.invalid"></message>
</validator>
三、JSP显示页面的国际化
1、非表单(form)内容国际化
1.1 在页面中用<s:text name="(key值)">来引用message.properties中的key值所队应得information(信息)
1.2 用<s:i18n />标签来实现国际化
在src下建资源文件例:marker_en_US.properties 和 marker_zh_CN.properties,文件名自定
在jsp页面<s:i18n name="marker"> ---name指定资源文件的basename
<s:text name="hello"> ---hello指定资源文件的需要的key值
<s:param>world</s:param> ---给文件中对应的{0}{1}赋值
</s:text>
</s:i18n>
marker资源文件内容:hello = world {0}
2、表单(form)内容国际化
这时,form的theme属性不能设置为simple,然后给struts2标签设置key属性,即指定message.properties资源文件的key值
四、action中要输出信息的国际化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: