<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
required : 強制某個域不能為空,它沒有參數。
validwhen : 通過一個域的值來檢查另一個域的值。
minlength ; 檢查用戶輸入的數據長度不小于某個指定的值,需要一個最小的長度變量。
配置方法如下
<field property="username" depends="required,minlength">
<arg key="form.username" />
<arg position="1" name="minlength" key="${var : minlength}" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
</field>
maxlength : 檢查用戶輸入的最大長度。具體配置方法參照上面minlength的配置。
mask : 根據正則表達式來檢查數據的格式,它需要一個正則表達式掩碼變量。從struts1.1開始,正則表達式必須以“^”開始并以“$”結束,其配置如下
<field property="username" depends="mask">
<arg key="form.username" />
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>
data : 檢查一個域是否可以被轉換成Data對象。它使用java.text.SimpleDateFormat來進行分析和檢驗,它可以使用dataPatten或者dataPattenStrict(這個比較嚴格,它要求輸入的數據長度必須與模式中的指定長度一致)例如:
<field property="birthday" depends="date">
<arg key="form.date"/>
<var>
<var-name>dataPattern</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
</field>
intRange / floatRange / doubleRange : 檢驗一個整數 / 浮點數 / 雙精度浮點數 的值是否在一個指定的范圍內,需要最大值和最小值來指定范圍。這些檢驗分別要依賴于 integer / float / double 檢驗,所以也要要求將它們也指定到depends屬性中。它定義的方法如下(這里以intRange為例)
<field proerty="age" depends="required,integer,intRange">
<arg position="0" key="form.age" />
<arg position="1" name="intRange" key="${var : min }" resource="false" />
<arg position="2" name="intRange" key="${var : max}" resource="false" />
<var>
<var-name>min</var-name>
<var-value>6</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>16</var-value>
</var>
creditCard : 檢驗一個信用卡的格式是否正確,不需要任何參數,它的定義如下。
<field property="card" depends="required,creditCard">
<arg key="form.card" />
</field>
email : 檢驗電子郵件地址格式是否正確,不需要任何參數,它的定義如下。
<field property="email" depends="required,email">
<arg key="form.email"/>
</field>
url : 檢驗URL的格式是否正確。它有四個參數,分別是allowallschemes,allow2slashes,nofragments和schemes 。
allowallschemes : 用來指明是否允許所有的schemes 。它的值可以為true(允許)/ false(禁止),默認值為false。如果這個值被設置為真,那么將會忽略schemes變量。
allow2slashes : 用來指明是否允許兩個“/”出現。它的值可以為true(允許)/ false(禁止),默認值為false。
nofragments : 用來說明是否不允許分段。它的值可以為true(不允許)/ false(允許),默認值為false。
schemes : 指定合法的schemes,多個可以用逗號分隔。如果沒有進行指定,那么默認為http , https , 和 ftp 。
url檢驗的方法如下
<field proper="custUrl" depends="url" >
<arg key = "form.coutUrl" />
</field>
<field proper="custUrl" depends="url" >
<arg key = "form.coutUrl" />
<var>
<var-name>nofragments</var-name>
<var-value>true</var-value>
</var>
<var>
<var-name>schemes</var-name>
<var-value>http,https,telnet,file</var-value>
</var>
</field>
驗證兩個輸入域是否相等
<field property="password2" depends="required,validwhen">
<arg position="0" key="form.password2" />
<arg position="1" key="form.password" />
<msg name="validwhen" key="error.password.mathch"/>
<var>
<var-name>test</var-name>
<var-value>(*this* == password)</var-value>
</var>
</field>
初始化配置文件
validation.xml內容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "validator_1_1_3.dtd" >
<form-validation>
<formset>
<form name="userForm">
<field proper="" depends="">
....................................
</field>
</form>
</formset>
</form-validation>
-------------------------------------------------------------------------------------------------------------------------------
Validator的調用配置
Validator的調用方法要依據所采用的驗證方式而定。
后臺服務器端驗證
Action中的Validate屬性值設為 true
還有在頁面中通過<html:errors />標記來顯示錯誤信息
前臺Javascrip驗證
Action中的Validate屬性值設為 false
還有在頁面用使用<html:javascript />
<html:form onsubmit="return ValidateXXXForm(this)" >
</html:form>
<html:javascript forName="XXXForm" />
posted on 2007-08-18 13:02
Ke 閱讀(594)
評論(0) 編輯 收藏 所屬分類:
struts