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


















