struts2 验证框架、国际化

来源:http://www.cnitblog.com/intrl/archive/2009/07/01/59762.html


在之前发表的 Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 整合开发 的基础上加入验证框架和国际化,做法如下:
(一)验证框架
1、在 LoginAction.java 的并列位置建立文件 LoginAction-validation.xml 
LoginAction-validation.xml

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
 3<validators>
 4    <field name="username">
 5        <field-validator type="requiredstring">
 6            <param name="trim">true</param>
 7            <message>用户名不能为空</message>
 8        </field-validator>
 9    </field>
10    <field name="password">
11        <field-validator type="requiredstring">
12            <param name="trim">true</param>
13            <message>密码不能为空</message>
14        </field-validator>
15    </field>
16</validators>
2、效果截图

(二)国际化
1、创建国际化资源文件
在com.test.action包下建立两个包级别国际化资源文件package_en_US.properties和package_zh_CN.properties
package_en_US.properties


package_zh_CN.properties


2、LoginAction-validation.xml 验证框架配置文件的修改,使用key属性读取国际化资源文件,若所读取资源字段不存在则直接显示key信息
 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
 3<validators>
 4    <field name="username">
 5        <field-validator type="requiredstring">
 6            <param name="trim">true</param>
 7            <message key="name.requried"></message>
 8        </field-validator>
 9    </field>
10    <field name="password">
11        <field-validator type="requiredstring">
12            <param name="trim">true</param>
13            <message>${getText("pass.requried")}</message>
14        </field-validator>
15    </field>
16</validators>
其中第7行和地13行为显示国际化信息的两种写法,第13行的写法要求applicationContext-actions.xml中对应bean要有scope属性,否则会出错!

3、运行结果截图
浏览器字符编码为英文时:


浏览器字符编码为中文时:


4、applicationContext-actions.xml中bean——loginAction的配置scope="prototype"的作用:
strut2actionspring的配置文件中是单态的,所以每次返回的错误对象都是原来的!为了生成新的对象,在spring的配置文件中要加scope="prototype"。
根据以上第2点说明,我们先把LoginAction-validation.xml 中第13行改为<message key="pass.requried"></message>
若去掉scope="prototype"属性,则多次输入错误时将发生如下结果:

阅读更多
个人分类: struts
想对作者说点什么? 我来说一句

Struts2大全

2016年07月19日 6.25MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭