Struts Validator驗(yàn)證框架詳細(xì)講解
框架能夠克服在ActionForm Bean中以編程方式進(jìn)行數(shù)據(jù)驗(yàn)證的局限,它允許Struts應(yīng)用靈活的配置驗(yàn)證規(guī)則,無(wú)需編程。
Struts Validator框架主要依賴(lài)兩個(gè)JAR文件:jakarta-oro.jar和commons-validator,.jar
Struts Validator框架采用兩個(gè)基于XML的配置文件來(lái)配置驗(yàn)證規(guī)則。這兩個(gè)文件為validator-rules.xml和validation.xml。
Validator-rules.xml文件保換了一組通用的驗(yàn)證規(guī)則,對(duì)所有的Struts應(yīng)用都適用。一般情況下,沒(méi)有必要修改該文件,除非需要修改或擴(kuò)展默認(rèn)的規(guī)則。
元素有7個(gè)屬性:
Name屬性:name屬性指定驗(yàn)證規(guī)則的邏輯名,這個(gè)名字必須是唯一的。
Classname和method屬性:classname和method屬性分別指定實(shí)現(xiàn)驗(yàn)證規(guī)則邏輯的類(lèi)和方法。
MethodParams:屬性用來(lái)指定驗(yàn)證方法包含的參數(shù),多個(gè)參數(shù)之間以逗號(hào)隔開(kāi)。
Msg屬性:msg屬性指定來(lái)自于Resource Bundle中的消息key。當(dāng)驗(yàn)證失敗時(shí),Validator框架將根據(jù)這個(gè)消息key到
resource Bundle中查找匹配的消息文本。
Depends屬性:depends屬性指定在調(diào)用當(dāng)前驗(yàn)證規(guī)則之前必須先調(diào)用的其他驗(yàn)證規(guī)則。
Validator框架提供了基本的,通用的驗(yàn)證規(guī)則,對(duì)struts應(yīng)用以及非Struts應(yīng)用都適用。
Org.apache.commons.validator.GenericValidator類(lèi)提供了一組實(shí)現(xiàn)這些規(guī)則的靜態(tài)方法。
GenericValidator類(lèi)的驗(yàn)證方法:
isBlankOrNull: 驗(yàn)證字段是否為null,或者長(zhǎng)度是否為0。
isByte:驗(yàn)證字段是否可以被轉(zhuǎn)換為有小的byte類(lèi)型的數(shù)據(jù)。
isCreditCard:驗(yàn)證字段是否為有效的信用卡號(hào)。
isDate:驗(yàn)證字段是否為有效的日期。
isDouble:驗(yàn)證字段是否可以被轉(zhuǎn)換成有效的double類(lèi)型的數(shù)據(jù)。
isEmail:驗(yàn)證字段是否為有效的Email地址。
isFloat:驗(yàn)證字段是否可以被轉(zhuǎn)換為有效的float類(lèi)型的數(shù)據(jù)。
isInRange:雁陣谷子斷時(shí)候借于最小值和***值之間。
isInt:驗(yàn)證字段是否可以被轉(zhuǎn)換為有效的int類(lèi)型的數(shù)據(jù)。
isLong:驗(yàn)證字段是否可以被轉(zhuǎn)換為有效的long類(lèi)型的數(shù)據(jù)。
isShort:驗(yàn)證字段是否可以被轉(zhuǎn)換為有效的short類(lèi)型的數(shù)據(jù)。
matchTegexp:驗(yàn)證字段是否和正規(guī)表達(dá)式匹配。
maxLength:驗(yàn)證字段時(shí)候小于或等于***值。
minLength:驗(yàn)證字段時(shí)候大于或等于最小值。
在Struts框架中定義了專(zhuān)門(mén)用于驗(yàn)證表單字段的org.apache.struts.validator.FieldChecks類(lèi),它提供了和GenericValidator類(lèi)似的方法。以下是FieldChecks類(lèi)包含的驗(yàn)證方法:
validateByte
validateCreditCard
validateDate
validateDouble
validateEmail
validateFloat
validateInteger
validateLong
validateMask
validateMinLength
validateMaxLength
validateRange
validateRequired
validateShort
validation.xml文件:
這個(gè)文件是針對(duì)于某個(gè)具體Struts應(yīng)用的,需要開(kāi)發(fā)人員來(lái)創(chuàng)建,它可以為應(yīng)用中的ActionForm配置所需的驗(yàn)證規(guī)則,取代在ActionForm類(lèi)中以編程的方式來(lái)實(shí)現(xiàn)驗(yàn)證邏輯。
Validator框架不能用于驗(yàn)證標(biāo)準(zhǔn)的org.apache.struts.action.ActionForm類(lèi)。如果要使用Validator框架應(yīng)該采用ActionForm類(lèi)的兩個(gè)子類(lèi):DynavalidatorForm和ValidatorForm。
Validator框架可以進(jìn)行瀏覽器客戶(hù)端驗(yàn)證。如果要進(jìn)行客戶(hù)端驗(yàn)證,需要用到Struts的標(biāo)簽,它能夠在JSP網(wǎng)頁(yè)中生成用于客戶(hù)端驗(yàn)證的JavaScript腳本。
【編輯推薦】