二、我們再來詳細討論一下各個檔案中的細節問題
在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應...