首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

struts2学习札记十七(第17讲.Struts2的国际化续)

2012-09-06 
struts2学习笔记十七(第17讲.Struts2的国际化续)struts2的国际化:1.页面的国际化,也就是jsp的国际化。 2.Ac

struts2学习笔记十七(第17讲.Struts2的国际化续)
struts2的国际化:
1.页面的国际化,也就是jsp的国际化。
2.Action的国际化
3.类型转换信息的国际化
4.数字校验的国际化

一、这里主要讲的是Action的国际化:
以src下com.test.action包里面的RegisterAction.java为例:

1、在registered2.jsp页面,把代码

<s:fielderror cssStyle="color:red"/>

修改为:
<s:actionerror cssStyle="color:red"/>

2、然后修改RegisterAction.java类里面的验证方法validate():
public void validate() {System.out.println("validate~~~~~~~~~~~~~~");////this.addFieldError("username", "aaaaaaaaaaaaaaa");if(null == username || username.length() < 6 || username.length() > 10){this.addActionError(this.getText("username.invalid"));}}

3、修改属性文件message_zh_CN.properties和message_en_US.properties:
message_zh_CN.properties文件:
addUser = \u589e\u52a0\u7528\u6237\u4fe1\u606fusername.invalid = \u7528\u6237\u540d\u586b\u5199\u4e0d\u6b63\u786e

message_en_US.properties文件:
addUser = Add User Informationusername.invalid = username invalid


4、然后编译项目,重启服务,重新测试查看效果是能够实现国际化。

Action国际化第二种方式:使用getText方法
public void validate() {System.out.println("validate~~~~~~~~~~~~~~");////this.addFieldError("username", "aaaaaaaaaaaaaaa");if(null == username || username.length() < 6 || username.length() > 10){List list = new ArrayList();list.add(username);this.addActionError(this.getText("username.invalid",list));//list方式this.addActionError(this.getText("username.invalid",new String[]{username}));//数组方式}}


二、验证框架,xml文件的国际化
xml文件里面都是field级别的提醒
1、所以在jsp页面还是使用field级别的提醒:
<s:fielderror cssStyle="color:red"/>

2、修改src下com.test.action包里面的xml文件RegisterAction-validation.xml:
<field-validator type="requiredstring" ><param name="trim">true</param><!--  message>username should not be blank!!!</message>--><message key="username.xml.invalid"></message></field-validator>

然后查看验证效果。

三、类型转换
资源文件分类管理分为两种:包级别和类级别的。
1、包级别的资源文件,在包com.test.action里创建包级别的资源文件:package_en_US.properties和package_zh_CN.properties,其中package前缀是固定的。
package_en_US.properties:
username.xml.invalid = package information

package_zh_CN.properties:
username.xml.invalid = \u5305\u7ea7\u522b\u63d0\u793a\u4fe1\u606f


如果在包级别中有存在的资源文件,就不会再去找了。
2、类级别的资源文件,在包com.test.action里创建类级别的资源文件:RegisterAction_en_US.properties和RegisterAction_zh_CN.properties,其中RegisterAction前缀是类的名字。
package_en_US.properties:
username.xml.invalid = RegisterAction information

package_zh_CN.properties:
username.xml.invalid = \u7c7b\u7ea7\u522b\u63d0\u793a\u4fe1\u606f


四、表单国际化
表单中label的国际化
在jsp页面
<s:form action="register">        <table align="center" width="40%" border="1">    <tr>    <td>username    </td>    <td>    <s:textfield name="username" key="username.xml.invalid" id="usernameId"></s:textfield>    </td>    </tr> </s:form>

查看验证效果。


热点排行