validator 驗證框架(學習筆記)

yunchat發表於2005-08-17

vlidator框架的使用:配置檔案屬性說明. 相關架構的關係,及框架的具體實現.

[@more@]

Validator框架提供了基本的、通用的驗證規則,對Struts應用以及非Struts應用都適用,org.apache.commons.validator.GenericValidator類提供了一組實現這些規則的靜態方法。

目前 GenericValidator 提供了
isBlankOrNull(java.lang.String value) :
檢查是否為空值,及去掉空白後長度是否大於零

isByte(java.lang.String value) :
是否可以轉成
byte
isCreditCard(java.lang.String value) :
是否為正確的信用卡號

isDate(java.lang.String value, java.util.Locale locale) :
是否為有效的日期, 可依照區域別判斷

isDate(java.lang.String value, java.lang.String datePattern, boolean strict) :
是否為有效的日期, 可輸入日期格式, 是否需要完全符合

isDouble(java.lang.String value) :
是否可以轉成
double
isEmail(java.lang.String value) :
是否為有效的
Email
isFloat(java.lang.String value) :
是否可以轉成
float
isInRange(double value, double min, double max) :
輸入數值是否在此區間
( double )
isInRange(float value, float min, float max) :
輸入數值是否在此區間
( float )
isInRange(int value, int min, int max) :
輸入數值是否在此區間
( int )
isInRange(short value, short min, short max) :
輸入數值是否在此區間
( short )
isInt(java.lang.String value) :
是否可以轉成
int
isLong(java.lang.String value) :
是否可以轉成
long
isShort(java.lang.String value) :
是否可以轉成
short
matchRegexp(java.lang.String value, java.lang.String regexp) :
是否符合輸入的
Regular Expression
maxLength(java.lang.String value, int max) :
長度不得大於輸入值

minLength(java.lang.String value, int min) :
長度不得小於輸入值
我認為最好用的就是 matchRegexp 可以設定成各式各樣的判斷.

struts框架中定義了專門用於驗證表單欄位的org.apache.struts.validator.FieldChecks類,它提供了和GenericValidator類似的方法。validateMask()類似GenericValidator類的matchRegexp ()方法。

FieldChecks類實現了具體的驗證邏輯。在對錶單欄位進行驗證時,會呼叫FieldChecks類的相關方法,如驗證失敗,就會建立包含錯誤訊息的ActionMessage物件,並把該物件新增到ActionMessages集合物件中。

1.元素包含

2.元素中包含子元素

3.>元素中包含兩個子元素

元素有兩個屬性:language and country 用於支援I18N國際化。

中定義的元素代表全域性常量,而在元素中定義的元素代表區域性常量。

4.

元素,的子元素,為表單配置驗證規則,name屬性指定了表單的名字.

5.元素,

的子元素。用於配置驗證規則。

6.子元素,指定驗證規則對應的訊息文字,該訊息文字將替代在validator-rules.xml檔案中為驗證規則配置的預設的訊息文字。resourcetrue時,表示使用來自resource boundle的訊息;如果為false,表示直接在key屬性中設定訊息文字,預設值為true

7.msg類似,指定複合訊息中的引數。

Validator外掛,當應用啟動時,struts框架會載入validatorplugin 外掛並呼叫它的init()方法,init()根據pathnames屬性,載入相應的validator-rules.xmlvalidation.xml檔案,把驗證資訊讀入到記憶體中。

Validator採用ActionForm類的兩個子類:org.apache.struts.validator.DynaValidatorFormValidatorForm及其子類DynaValidatorActionForm and ValidatorActionForm

ValidatorForm and ValidatorActionForm的區別

Struts配置檔案的action元素的name屬性

Struts配置檔案的action元素的path屬性

validator.xml檔案的

元素的name屬性

validator.xml檔案的

元素的name屬性

使用path的方式可以對應於不同的ActionFORM使用不同的驗證規則

客戶端進行驗證:

Validator框架預設在web伺服器進行驗證。可以使用標籤在JSP網頁中生成用於客戶端驗證的JavaScript指令碼。

html:javascript formName="loginForm" dynamicJavascript="true" staticJavascript="false"/>

國際化

Validator框架提供了對I18N的支援,無論是客戶端驗證,還是服務端驗證,Validator框架都從應用的Resource Bundle中獲得錯誤訊息。Validator元素包含languange and country屬性。這兩個屬性可以設定Locale。如果對於不同的Local需要採用不同的驗證規則,那麼應該在validator.xml檔案中針對每個Local建立獨立的元素。

…….

…….

Validate框架步驟:

1. 建立Form

2. sturts配置檔案中配置

元素。

3. Validator框架使用的訊息文字新增到應用的Resource Bundle中。

4. validation.xml檔案中為表單配置驗證規則。

5. struts配置檔案中配置ValidatorPlugIn外掛

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/118026/viewspace-804665/,如需轉載,請註明出處,否則將追究法律責任。

相關文章