Struts validator驗證框架詳解(二)

2021-04-16 00:00:25 字數 4418 閱讀 5713

二、我們再來詳細討論一下各個檔案中的細節問題

在struts-config.xml

檔案的標籤裡面有乙個

attribute

屬性,它的值對應了自己的驗證檔案

validation.xml

中的值,如果沒有設定

attribute

,則validation.xml

檔案中的值應該為

struts-config.xml

檔案中對應的

的name

屬性值。

在validation.xml

檔案是我們自己編寫的驗證檔案,用

定義了我們需要驗證的表單,用

定義了某單元素要使用的驗證方法,而在

中,我們使用子節點

來定義需要傳送給頁面的錯誤資訊。格式為:

在這裡name

指定了該條訊息是針對哪乙個驗證規則的,它對應了

=的值。

key指定了訊息的內容,這要從我們的資源檔案

中查詢相應資訊,如果找不到則為空。把上面的訊息節點加入

節點內,然後在資源檔案中加入:

myrequired = mymsg: is required;

這樣,驗證錯誤時就會在頁面顯示自己希望的錯誤資訊,如下圖:

如果在我們沒有用

指定訊息,那麼程式會使用預設的訊息,我們在驗證規則檔案中可以檢視到訊息關鍵字,例如:

<

validator

name

="required"

……msg=

"errors.required"

>

這裡,msg指定了

required

驗證所使用的預設訊息的關鍵字,相當於

標籤中的

key=」errors.required」

,所以只要我們在資源檔案中加入:

errors.required=......

這樣格式的語句,就可以顯示預設的訊息了。

資源檔案中的

是佔位符,可以用我們希望的內容來替換掉它使得內容靈活,可以使用多個佔位符:、、

。要替換掉佔位符時需要新增

、等標籤。

在上面的訊息中我們使用了乙個佔位符

,所給節點加入子節點:

name

指定了要替換佔位符的訊息,

key指定了替換內容,

resource

預設為true

,表示key

對應的內容需要從資源檔案中查詢,如果沒有找到返回空。如果設定

resource=」false」

,則表示

key對應的內容需要從

validation.xml

檔案中查詢。將上一句

加入到節點中,然後在資源檔案中加入語句:

myarg = myargument;

執行login.jsp

,得到如下介面:

可以看到訊息內容中原本

的地方被

myargument

所替代了。

當中設定

resource=」false」

時,我們需要在

validation.xml

檔案中查詢

key對應的內容。

如果key

的值是普通字串,則直接用這個字串代替佔位符。我們把先前的

validation.xml

檔案中標籤的

resource

設定為false

,其他無改動,則頁面變化為:

如果把之前的

key的格式修改為

key=」$」

,則表示我們要在自己定義的變數中查詢myarg

對應的值。

我們給節點中加入子節點

,具體如下:

<

var>

<

var-name

>myarg

var-name

>

<

var-value

>user's name

var-value

>

var>

這樣以來就會用user』s name

來替換掉佔位符:

如果沒有在當前

下找到var-name

符合的節點,則用

key的值,也就是

$替換佔位符,如下:

我們不僅可以在每乙個

內設定子節點

來供等來引用,還可以設定全域性量供所有表單引用。

在validation.xml

檔案的根結點

下加入:

<

global

>

<

constant

>

<

constant-name

>conname

constant-name

>

<

constant-value

>

convalue

constant-value

>

constant

>

global

>

並且修改

中key

的值為key=」$」

,則程式會用

convalue

來代替佔位符:

如果找不到

key的值中

conname

對應的節點,則會直接使用

key的值替換佔位符:

除此之外,$和

$也可以出現在

節點中的內容中。

三、我們在來討論一下如何使用更複雜的驗證。

當需要在表單的某個欄位上使用多個驗證規則的時候,我們就需要將這些規則全部加入到

標籤的depends=」」

之中,並且用逗號分隔,例如:

我們修改前面的

validation.xml

檔案後內容如下:(這裡只是有變化的部分的**)

<

field

property

="name"

depends

="required,minlength"

>

<

msg

name

="required"

key=

"myrequired"

/>

key="$"resource="false"/>

myarg

user's name

minlength

3分析上面的**,我們對表單的

name

字段使用了兩種驗證規則,乙個是

required

(不可為空),乙個是

minlength

(最小串長度),並且對每種驗證使用了不同的錯誤訊息:

myrequired

和myminlength

,我們通過

的name

標籤屬性來分配的。接著我們對訊息中的佔位符進行配置,

中沒有設定

name

標籤屬性,所以它的配置是對兩個驗證規則的錯誤訊息都有效的。而

中設定了

name=」minlength」

屬性,這個引數配置只對

minlength

驗證的錯誤訊息有效。這裡要注意的乙個地方是我們在設定串的最小長度限制引數

的時候,使用了key=」$」 resource=」false」

,這個形式十分重要,是固定不能改動的。

struts validator 驗證配置

這裡以jakarta struts 1.1為例說明validator驗證的配置方法。實現validator驗證需要struts的兩個jar包 commons validator.jar和jakarta oro.jar 或者使用naitve2ascii user.usrname 姓名 user.usr...

Struts Validator驗證框架

1.匯入jar包 將 color red commons validator.jar color 和 color red jakarta oro.jar color 這兩個jar包放到web應用的web inf lib目錄中 2.要驗證的form繼承 color red org.apache.str...

struts Validator框架校驗說明

struts1.1及以上版本在提供了表單輸入自動驗證的功能,即使用validator驗證框架。在使用validator驗證框架時,需要用到二個基於xml的配置檔案進行驗證規則的配置,乙個是validator rules.xml,另乙個是validation.xml。這兩個檔案應該部署在相應的web應...