基於XML配置方式實現輸入校驗

2021-06-06 00:50:04 字數 2597 閱讀 1213

action類需要繼承actionsupport,然後提供校驗檔案,如下:

<?xml version="1.0" encoding="utf-8"?>

true

使用者名稱不能為空!

在這個校驗檔案中,對action中字串型別的username屬性進行驗證,首先要求呼叫trim()方法去掉空格,然後判斷使用者名稱是否為空。該檔案需要和action類放在同乙個包下,檔案的取名應遵守actionclassname-validation.xml規則,其中actionclassname為action的簡單類名,-validation為固定寫法。如果action類為cn.itcast.action.useraction,那麼該檔案的取名應為:useraction-validation.xml。

true

使用者名稱不能為空!

指定action中要校驗的屬性,指定校驗器,為校驗失敗後的提示資訊,如果需要國際化,可以為message指定key屬性,key的值為屬性檔案中的key。

上面指定的校驗器requiredstring是由系統提供的,系統提供了能滿足大部分驗證需求的校驗器,這些校驗器的定義可以在xwork-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中找到。

系統提供的校驗器如下:

required (必填校驗器,要求field的值不能為null)

requiredstring (必填字串校驗器,要求field的值不能為null,並且長度大於0,預設情況下會對字串去前後空格)

stringlength(字串長度校驗器,要求field的值必須在指定的範圍內,否則校驗失敗,minlength引數指定最小長度,maxlength引數指定最大長度,trim引數指定校驗field之前是否去除字串前後的空格)

regex(正規表示式校驗器,檢查被校驗的field是否匹配乙個正規表示式.expression引數指定正規表示式,casesensitive引數指定進行正規表示式匹配時,是否區分大小寫,預設值為true)

int(整數校驗器,要求field的整數值必須在指定範圍內,min指定最小值,max指定最大值)

double(雙精度浮點數校驗器,要求field的雙精度浮點數必須在指定範圍內,min指定最小值,max指定最大值)

fieldexpression(欄位ognl表示式校驗器,要求field滿足乙個ognl表示式,expression引數指定ognl表示式,該邏輯表示式基於valuestack進行求值,返回true時校驗通過,否則不通過)

email(郵件位址校驗器,要求如果field的值非空,則必須是合法的郵件位址)

url(**校驗器,要求如果field的值非空,則必須是合法的url位址)

date(日期校驗器,要求field的日期值必須在指定範圍內,min指定最小值,max指定最大值)

conversion(轉換校驗器,指定在型別轉換失敗時,提示的錯誤資訊)

visitor(用於校驗action中的復合屬性,它指定乙個校驗檔案用於校驗復合屬性中的屬性)

expression(ognl表示式校驗器,expression引數指定ognl表示式,該邏輯表示式基於valuestack進行求值,返回true時校驗通過,否則不通過,該校驗器不可用在字段校驗器風格的配置中)

required  必填校驗器

性別不能為空!

requiredstring  必填字串校驗器

true

使用者名稱不能為空!

stringlength:字串長度校驗器102

true

int:整數校驗器

1150

年齡必須在1-150之間

欄位ognl表示式校驗器

0]]>

檔案不能為空

電子郵件位址無效

regex:正規表示式校驗器

手機號格式不正確!

當校驗檔案的取名為actionclassname-validation.xml時,會對 action中的所有處理方法實施輸入驗證。如果你只需要對action中的某個處理方法實施驗證,那麼,校驗檔案的取名應為:actionclassname-actionname-validation.xml,其中actionname為struts.xml中為action配置的名稱。例如:在實際應用中,常有以下配置:

/web-inf/page/message.jsp

/web-inf/page/adduser.jsp

useraction中有以下兩個處理方法:

public string add() throws exception

public string update() throws exception

要對add()方法實施驗證,校驗檔案的取名為: useraction-user_add-validation.xml

要對update()方法實施驗證,校驗檔案的取名為: useraction-user_update-validation.xml

訪問上面名為user的action,系統先搜尋到baseaction-validation.xml, baseaction-user-validation.xml,接著搜尋到useraction-validation.xml, useraction-user-validation.xml。校驗規則是這四個檔案的總和。

基於XML配置的輸入校驗

使用基於xml配置方式實現輸入校驗時,action也需要繼續actionsupport,並且提供校驗檔案,校驗檔案和action類放在同乙個包下,檔案的取名格式為 actionclassname validation.xml,其中actionclassname為action的簡單類名,validat...

Struts2 輸入校驗 基於XML配置方式實現

使用基於xml配置方式實現輸入校驗時,action也需要繼承actionsupport,並且提供校驗檔案,校驗檔案和action類放在同乙個包下,檔案的取名格式為 actionclassname validation.xml,其中actionclassname為action的簡單類名,validat...

Spring 基於xml配置方式的事務

參考前面的宣告式事務的例子 我們做了相應的修改。在dao中和service中的各個類中,去掉所有註解標籤。然後為為每個字段提供乙個set 方法 1 xml version 1.0 encoding utf 8 2 beans xmlns 3xmlns xsi 4xmlns aop 5xmlns co...