Validator验证框架okWord文件下载.docx

上传人:b****5 文档编号:8398817 上传时间:2023-05-11 格式:DOCX 页数:18 大小:38.14KB
下载 相关 举报
Validator验证框架okWord文件下载.docx_第1页
第1页 / 共18页
Validator验证框架okWord文件下载.docx_第2页
第2页 / 共18页
Validator验证框架okWord文件下载.docx_第3页
第3页 / 共18页
Validator验证框架okWord文件下载.docx_第4页
第4页 / 共18页
Validator验证框架okWord文件下载.docx_第5页
第5页 / 共18页
Validator验证框架okWord文件下载.docx_第6页
第6页 / 共18页
Validator验证框架okWord文件下载.docx_第7页
第7页 / 共18页
Validator验证框架okWord文件下载.docx_第8页
第8页 / 共18页
Validator验证框架okWord文件下载.docx_第9页
第9页 / 共18页
Validator验证框架okWord文件下载.docx_第10页
第10页 / 共18页
Validator验证框架okWord文件下载.docx_第11页
第11页 / 共18页
Validator验证框架okWord文件下载.docx_第12页
第12页 / 共18页
Validator验证框架okWord文件下载.docx_第13页
第13页 / 共18页
Validator验证框架okWord文件下载.docx_第14页
第14页 / 共18页
Validator验证框架okWord文件下载.docx_第15页
第15页 / 共18页
Validator验证框架okWord文件下载.docx_第16页
第16页 / 共18页
Validator验证框架okWord文件下载.docx_第17页
第17页 / 共18页
Validator验证框架okWord文件下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Validator验证框架okWord文件下载.docx

《Validator验证框架okWord文件下载.docx》由会员分享,可在线阅读,更多相关《Validator验证框架okWord文件下载.docx(18页珍藏版)》请在冰点文库上搜索。

Validator验证框架okWord文件下载.docx

元素。

<

元素可以包括一个或多个<

validator>

这些元素的DTD定义如下:

!

elementform-validation(global+)>

elementglobal(validator+)>

每个<

元素定义了一个唯一的验证规则。

例如,以下代码定义了一个名为“required”的验证规则:

validatorname="

required"

classname="

org.apache.struts.validator.FieldChecks"

method="

validateRequired"

methodParams="

java.lang.Object,

mons.validator.ValidatorAction,

mons.validator.Field,

org.apache.struts.action.ActionMessages,

mons.validator.Validator,

javax.servlet.http.HttpServletRequest"

msg="

errors.required"

>

/validator>

元素有7个属性,

name

classname

method

methodParams

msg

depends

jsFunctionName

1.name属性

name属性指定验证规则的逻辑名,这个名字必须是惟一的。

2.classname和method属性

classname和method属性分别指定实现验证规则逻辑的类和方法。

例如,对于以上“required”验证规则,由FieldChecks类的validateRequired()方法来实现。

methodParams属性用来指定验证方法包含的参数,多个参数之间以逗号隔开。

3.msg属性

msg属性指定来自于ResourceBundle(本地资源文本文件)中的消息key(关键字)。

当验证失败时,Validator框架将根据这个消息key到ResourceBundle中查找匹配的消息文本。

默认情况下,Validator框架使用以下的消息文本:

errors.required={0}isrequired.

errors.minlength={0}cannotbelessthan{1}characters.

errors.maxlength={0}cannotbegreaterthan{1}characters.

errors.invalid={0}isinvalid.

errors.byte={0}mustbeabyte.

errors.short={0}mustbeashort.

errors.integer={0}mustbeaninteger.

errors.long={0}mustbealong.

errors.float={0}mustbeafloat.

errors.double={0}mustbeadouble.

errors.date={0}isnotadate.

errors.range={0}isnotintherange{1}through{2}.

errors.creditcard={0}isaninvalidcreditcardnumber.

errors.email={0}isaninvalide-mailaddress.

如果我们打算使用替换消息,应该把以上内容添加到应用的ResourceBundle中。

如果不打算使用以上默认的错误消息文本,可以修改validator-rules.xml文件中<

元素的msg属性,使它引用其它自定义的消息key;

或者也可以修改以上的错误消息文本。

4.depends属性

depends属性指定在调用当前验证规则之前必须先调用其它的验证规则。

例如,以下“minLength”验证规则的配置代码中就使用了depends属性:

minlength"

validateMinLength"

depends="

errors.minlength"

以上代码表示,在调用“minlength”验证规则之前,应该先调用“required”规则。

如果depends属性包含多个验证规则,则用逗号隔开,例如:

required,integer"

如果调用depends属性指定的验证规则时验证失败,就不会再调用下一个规则。

例如,如果被验证的数据未通过“required”验证规则,表示该数据根本不存在,就没有必要在调用“minLength”验证规则,来检查数据的长度是否大于或等于最小长度。

Validator框架提供了基本的、通用的验证规则,对Struts应用以及非Struts应用都适用。

monos.validator.GenericValidator类提供了一组实现这些规则的静态方法。

下表对这些方法作了说明。

GenericValidator类的验证方法

方法

描述

isBlankOrNull

验证字段是否为null,或者长度是否为0

isByte

验证字段是否可以被转换为有效的bytet类型的数据

isCreditCard

验证字段是否为有效的信用卡号

isDate

验证字段是否为有效的日期

isDouble

验证字段是否可以被转换为有效的double类型的数据

isEmail

验证字段是否为有效的E-Mail地址

isFloat

验证字段是否可以被转换为有效的float类型的数据

isInRange

验证字段是否介于最小值和最大值之间

isInt

验证字段是否可以被转换为有效的int类型的数据

isLong

验证字段是否可以被转换为有效的long类型的数据

isShort

验证字段是否可以被转换为有效的short类型的数据

matchRegexp

验证字段是否和正则表达式匹配

maxLength

验证字段是否小于或等于最大值

minLength

验证字段是否大于或等于最小值

在Struts框架中定义了专门用于验证表单字段的org.apache.struts.validator.FieldChecks类,它提供了和GenericValidator类似的方法。

以下是FieldChecks类包含的验证方法:

validateByte

validateCreditCard

validateDate

validateDouble

validateEmail

validateFloat

validateInteger

validateLong

validateMask

validateMinLength

validateMaxLength

validateRange

validateRequired

validateShort

FieldChecks类的validateMask()方法和matchRegexp()方法很相似。

validateMask()方法能够验证字段值是否和一个给定的Jakarta正则表达式(RegularExpression,简称RegExp)匹配。

正则表达式用于定义字符模式,例如:

“^[a-zA-Z]*$”表示字符串必须只包含字母;

“^\d{5}\d*$”表示字符串必须是5位数字。

FieldChecks类实现了具体的验证逻辑。

在对表单字段进行验证时,会调用FieldChecks类的相关方法,如果验证失败,就会创建包含错误消息的ActionMessage对象,并把该对象添加到ActionMessages集合对象中。

三、validaotion.xml文件

Validator框架的第二个配置文件为validation.xml文件。

这个文件是针对于某个具体Struts应用的,需要开发人员来创建,它可以为应用中的ActionForm配置所需的验证规则,取代在ActionForm类中以编程的方式来实现验证逻辑。

下图显示一个简单的validation.xml文件样例。

<

constant>

constant-name>

phone<

/constant-name>

constant-value>

^\d{8}\d*$<

/constant-value>

/constant>

/global>

formset>

formname="

checkoutForm"

fieldproperty="

phone"

depends="

required,mask,minlength"

<

arg0key="

label.phone"

/>

arg1name="

key="

${var:

minlength}"

resource="

false"

var>

var-name>

mask<

/var-name>

var-value>

${phone}<

/var-value>

/var>

minlength<

7<

/field>

/form>

/formset>

/form-validation>

1.<

元素

validation.xml文件的根元素为<

元素,它包含两个子元素:

和<

元素可以出现零次或多次,而<

元素可以出现一次或多次。

2.<

在<

元素中可以定义<

子元素,它用来定义常量表达式,在文件的其余地方可以引用这些常量表达式。

以下代码配置了两个<

元素:

^\d{7}\d*$<

zip<

^\d{6}\d*$<

以上代码定义了两个常量phone和zip,在<

formet>

元素中可以通过${constant-name}的形式来引用他们,例如访问phone常量的形式为${phone}。

3.<

元素包含两个子元素:

form>

可以出现零次或多次,<

元素有两个属性:

language和county。

language和county属性用于支持I18N(国际化)。

4.<

fom>

元素的<

子元素用于为表单配置验证规则,它的name属性指定了表单的名字。

元素可以有一个或多个<

field>

子元素。

5.<

子元素用于配置表单中字段的验证规则。

如上边的例子,对checkoutForm表单的phone字段配置了验证规则。

元素的属性作了描述。

属性

property

指定ActionFormBean中需要进行验证的字段的名字。

指定字段的验证规则,多个规则之间以逗号隔开。

6.<

msg>

子元素指定验证规则对应的消息文本。

该消息文本将替代在validator-rules.xml文件中为验证规则配置的默认的消息文本。

例如:

fieldproperty=”phone”depends=”required,mask,minlength”>

msgname=”mask”key=”phone.invalidformat”/>

……

以上代码的<

元素表明,当”mask”验证规则验证失败时,错误消息文本来自ResourceBundle,消息key为”phone.invalidformat”。

元素有三个属性。

指定验证规则的名字。

key

当resource属性为true时,key属性指定消息key,该消息key应该在ResourceBundle中存在,当resource属性为true时,key属性直接指定消息文本

resource

在此项为true时,表示使用来自ResourceBundle的消;

如果为false,表示直接在key属性中设置消息文本,默认值为true

7.<

arg>

元素可以包含4个附加元素;

arg0>

、<

arg1>

arg2>

arg3>

,用于替换符合消息中的参数。

元素指定第一个替换值,<

指定第二个值,依次类推。

每个arg元素包含三个属性:

name、key、resource,这些属性的用法和<

元素很相似。

下面的例子包含<

field

property=”phone”

depends=”required,mask,minlength”>

arg0key=”label.phone”/>

arg1name=”minlength”key=”${var:

minlength}”resource=”false”/>

以上代码没有配置<

元素,因此当某个验证规则验证失败时,将使用在validator-rules.xml中配置的默认消息文本。

例如,如果“minlength”验证规则失败,则validator-rules.xml中设置的消息key为“errors.minlength”:

validator

name=”minLength”

……

msg=”errors.minlength”>

在ResourceBundle中与“errors.minlength”匹配的中文消息文本为:

errors.minlength={0}不能少于{1}字符。

元素没有设置name属性,因此使用与所有验证规则,它将取代以上符合消息中的第一个参数{},{arg0}元素的key属性为”label.phone”,在ResourceBundle中与之匹配的中文消息文本为:

lable.phone=电话

元素的name属性为“minlength”,表示仅适用于“minlength”验证规则。

它将取代以上符合消息中的第二个参数{1}。

元素的resource属性为false,表明此时key属性直接指定文本。

key属性值由变量${var:

minlength}决定,此处值为7。

当“minlength”验证规则验证失败时,<

元素将分别取代以上符合消息中的两个参数,如图。

最后返回的错误信息为:

”电话号码不能少于7字符”。

8.<

元素还可以包含零个或多个<

元素用来向验证规则传递参数。

phone常量被传递给mask验证规则:

phone常量的值为“^\d{8}\d*$”,它定义了一种字符模式,表示字符串长度为8位,并且只能包含数字字符。

mask验证规则能够比较用户输入的phone字段是否合指定的字符模式匹配。

元素也可以访问<

元素,语法为${var:

var-name},例如:

<

四、Validator插件

为了在Struts框架中使用validator,可以采用插件机制把Validator加入到框架中。

这需要在Struts配置文件(struts-config.xml)中配置ValidatorPlugIn插件,代码如下:

plug-inclassName="

org.apache.struts.validator.ValidatorPlugIn"

set-property

property="

pathnames"

value="

/WEB-INF/validator-rules.xml,

/WEB-INF/validator/validation.xml"

/>

/plug-in>

当应用启动时,Struts框架会加载ValidatorPlugIn插件并调用它的init()方法。

init()方法根据pathnames属性加载相应的validator-rules.xml和validation.xml文件,把验证信息读入到内存中。

五、Validator框架和ActionForm

Validator框架不能用于验证标准的org.apache.struts.action.ActionForm类。

如果要使用Validator框架,应该采用ActionForm类的两个子类:

org.apache.struts.validator.DynaValidatorForm和org.apache.struts.validator.ValidatorForm。

DynaValidaotrForm支持在动态ActionForm中使用Validator框架,ValidatorForm支持在标准ActionForm中使用Validator框架。

无论是对于动态ActionForm还是标准ActionForm,配置Validator框架的方式都是一样的。

ValidatorForm有一个子类ValidatorActionForm。

Validator框架提供这两种类的目的在于可以更加准确地控制执行验证的条件。

例如,假定有个名为“editForm”的表单对应两个Action:

saveAction和cancleAction,如图所示。

假定editForm表单包含两个验证规则:

验证规则A和验证规则B。

如果对于用户的保存或取消动作,都要执行两个验证规则,则可以创建一个扩展ValidatorForm类的editForm类,然后再validator.xml中作如下配置:

formname=”editForm”>

验证

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2