主要是兩個配置文件和資源文件的修改,然后就是在jsp中輸出驗證的結果
validator-rules.xml是驗證注冊類,用于定義驗證邏輯,它的部分代碼
<validator name="required"
<!—①-->
className="org.apache.struts.util.StrutsValidator"
method="validateRequired"
<!—② -->
methodParams="java.lang.Object,
org.apache.commons.validator.validatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
<!—③ -->
<javascript><![CDATA[
function validateRequired(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
這個是required驗證的部分代碼。
validation.xml文件用于定義實際應用中的規則驗證(哪些域需要驗證,要驗證哪些驗證(比如required驗證、minlength驗證等等))
ApplicationResources文件主要是用于保存驗證結果信息
我用的是eclipse+myeclipse
首先要在項目里面加入struts框架,這個不用說了吧,然后添加一個validation.xml文件
<form-validation>
?<formset>
??<form name="RegisterForm">
???<field property="userName" depends="required,minlength,maxlength">
????<arg0 key="label.username" />
????<arg1 name="minlength" key="3" resource="false" />
????<arg1 name="maxlength" key="17" resource="false" />
????<var>
?????? <var-name>minlength</var-name>
?????? <var-value>3</var-value>
????</var>
??? <var>
????? ?<var-name>maxlength</var-name>
????? ?<var-value>17</var-value>
???? </var>
???</field>
?</form>
?</formset>
</form-validation>
form name="RegisterForm指定驗證名,也是actionform的名稱,后面會用到。
field property="userName指定要驗證的域,也就是actionform中的屬性
depends="required,minlength,maxlength指定要通過哪些驗證,這里有required,minlength,maxlength驗證,他們依次進行驗證,如果前面的驗證沒有通過,那么錯誤信息就保存到錯誤變量里面,不在進行下面的驗證
arg0 key="label.username則是在資源ApplicationResources文件中定義的字段,驗證結果中信息顯示需要。
如errors.required={0} is required,arg0的值會代替{0},是第一個變量
arg1 name="minlength" key="3" resource="false" ,是第二個變量,但要注意的是 resource="false" ,表示它直接采用key屬性所指定的值3去代替{1},而不使用ApplicationResources文件中定義的字段,下面有對minlength的定義
? <var>
?????? <var-name>minlength</var-name>
?????? <var-value>3</var-value>
????</var>
這些定義完之后,就是對資源文件的修改了,就是指定字段的替換
最后在jsp文件中運用驗證,簡單的一段代碼:
<td width="219" height="30" align="right">
????<font size="2">
?????<b>
??????<bean:message key="label.username" />
??????:
?????</b>
????</font>
???</td>
???<td width="218" height="30">
????<html:text property="userName" maxlength="17" size="20" styleClass="smallInput" />
????<font color="red">
?????*
????</font>
???</td>
???<td width="291" height="30">
????<font size="2" color="red">
?????<b>
??????<html:messages id="message" property="userName">
???????<li>
????????<bean:write name="message" />
???????</li>
??????</html:messages>
?????</b>
????</font>
???</td>
??</tr>
紅色部分就是進行驗證后的信息顯示,其中藍色的部分名稱要與validation.xml文件中的保持一致!!!