Struts 2 之校驗器

2021-06-28 16:55:53 字數 4138 閱讀 7370

對於輸入校驗,struts2提供了兩種方式,1、使用validate方法;2、基於xml配置實現 。

支援校驗的action必須實現validateable介面,一般直接繼承actionsupport就可以了

public void validate()  

if(mobile == null ||"".equals(this.mobile.trim()))else$").matcher(this.mobile).matches())

} super.validate();

}

public void validateupdate()

if(mobile == null ||"".equals(this.mobile.trim()))else$").matcher(this.mobile).matches())

}super.validate() ;

}

對這些錯誤資訊,在jsp頁面可以使用標籤來顯示

基於xml方式實現校驗時,action類也需要繼承actionsupport類,並且提供校驗檔案,校驗檔案同action類放在乙個包內,檔案的取名格式為:actionclassname-validation.xml,其中actionclassname為action類的簡單名字

true

使用者名稱不能為空

true

手機號不能為空

手機號格式不正確

位於xwork-2.0.4.jar壓縮包中(com.opensymphony.xwork2.validator.validators)有個檔案default.xml ,該檔案中定義了struts2框架內建的校驗器。default.xml檔案定義了常用的校驗器型別。

1、型別轉換檢驗器:

(1)非欄位校驗:

myfield

型別轉換錯誤

true

(2)字段校驗:

型別轉換錯誤

true

fieldname:該引數指定檢查是否存在轉換異常的欄位名稱,如果是字段校驗,則不用指定該引數。

repopulatefield:該引數指定當型別轉換失敗後,返回input頁面時,型別轉換失敗的表單是否保留原來的錯誤輸入。true為保留,false為不保留。

2、日期校驗器:

(1)非欄位校驗:

birthday

1990-01-02

2010-07-28

生日資料錯誤

(2)字段校驗:

1990-01-01

2010-07-28

min:指定字段日期值的最小值,該引數為可選引數。

max:指定字段日期值的最大值,該引數為可選引數。

3、浮點數值校驗器:

(1)非欄位校驗:

percentage

20.1

50.1

生日資料錯誤

(2)字段校驗:

20.1

50.1

mininclusive|minexclusive:指定欄位的最小值,包含該值|不包含該值。

maxinclusive|maxexclusive:指定欄位的最大值, 包含該值|不包含該值。

(1)非欄位校驗:

myemail

非法的郵件位址

(2)字段校驗:

非法的郵件位址

5、表示式校驗器:

.......

failed to meet ognlexpression...

expression:該引數為乙個邏輯表示式,該引數使用ognl表示式,並基於值棧計算,返回乙個boolean型別值。

6、字段表示式校驗器:

(1)非欄位校驗:

myfield

#mygirfriendcreditlimit]]>

my credit limit shouldbe more than my girlfriend

(2)字段校驗:

#mygirfriendcreditlimit]]>

my credit limitshould be more than my girlfriend

7、整數校驗器:

(1)非欄位校驗:

age

10100

年齡必須在在$到$之間

(2)字段校驗:

10

100年齡必須在在$到$之間

8、正規表示式校驗器:

(1)非欄位校驗:

mystrangepostcode

(2)字段校驗:

#mygirfriendcreditlimit]]>

my credit limitshould be more than my girlfriend

expression:為必選引數,指定匹配有的表示式。

casesensitive:指明進行匹配時,是否區分大小寫,為可選引數,預設為true。

9、必填校驗器:

(1)非欄位校驗:

username

使用者名稱不能為空

(2)字段校驗:

使用者名稱不能為空

10、必填字串校驗器:

(1)非欄位校驗:

username

true

使用者名稱不能為空

(2)字段校驗:

true

使用者名稱不能為空

11、字串長度校驗器:

(1)非欄位校驗:

username410

使用者名稱長度在$到$之間

(2)字段校驗:

4

10true

(1)非欄位校驗:

myhomepage

invalid homepageurl

(2)字段校驗:

invalid homepageurl

13、visitor校驗器:

該校驗器名稱為:visitor,用來校驗action中定義的復合型別屬性,支援簡單的復合型別、陣列型別、map等集合型別。

(1)非欄位校驗:

user

mycontext

(2)字段校驗:

mycontext

如果想自定義乙個自己的校驗器,可以在web工程的web-lib\lib目錄下增加乙個validators.xml配置檔案,在該檔案中定義自己的校驗器。

注意:如果使用validators.xml配置檔案,則系統預設的default.xml配置檔案不會載入,所以需要將default.xml的內容複製到validators.xml配置檔案中。否則不能使用系統內建的校驗器。

Struts2校驗之數字,日期校驗

struts2編寫驗證規則配置檔案驗證資料時,出現乙個問題,如果輸入的字段是字段是資料或日期時,比如說我的配置檔案中寫了這麼兩個驗證 輸入非數字資訊點提交時,出現的不是在配置檔案所定義的提示資訊,後來跟蹤 時發現org.apache.struts2.interceptor.strutsconvers...

Struts2框架的校驗器

struts2 框架系統內部已經註冊了內建的校驗器,可以開啟 struts2 的lib 包下的xwork.jar 包,在com opensymphony xwork2 validator validators 目錄下找到乙個 default.xml 配置檔案,該檔案中定義了 struts2 框架內建...

Struts2提供的校驗器

系統提供的校驗器如下 required 必填校驗器,要求field的值不能為null requiredstring 必填字串校驗器,要求field的值不能為null,並且長度大於0,預設情況下會對字串去前後空格 stringlength 字串長度校驗器,要求field的值必須在指定的範圍內,否則校驗...