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