在stuts -config. xm1中配置:
<plug-in className=" org. apache . struts. validator . ValidatorPlugIn">
<set-property value= "/WEB-INF/validator-rules .xml, /WEB-INF/validation.xm1*/>
</plug-in>
基本過程:
tomcat啓動,讀取web.xml文件,創建struts對象,執行init()方法初始化 , 將stuts-config. xml讀到內存
有< plug-in>就自動創建出插件對象,調用setPathnames(), 把value的值(兩個驗證規則的 .xml文件)設到Pathnames屬性中。
執行插件對象的init() , 通過流對象將兩個驗證規則文件讀到內存。
例:用戶名密碼什麼都不輸入就提交
http://127 .0.0.1: 880/a/login1 : do Pusername-=""&password=""
通過/login1找到配置信息
<action path= "/login1"
type=" com. bjsxt. struts. LoginAction"
name="loginForm"
scope= "request"
validate="true"//使用的是動態ActionForm -- 說明收集完了要調用相應的方法對收集來的數據做驗證
input="/login1. jsp"
>
<forward name=" success 'path=" /login success.jsp"/>
</action>
<form-bean name= "loginForm" type=" org- apache . struts . validator .DynaValidatorForm">
<form-property name= "username" type="java. lang String"/>
<form-property name= ”password" type= "java . lang . String"/>
</form-bean>
<message - resources parameter= "MessageResources" /> //配置國際化資源文件
通過name=“loginForm找到formbean type=” org. apache . struts . validator . DynaValidatorForm",創建DynaActionForm對象
key=“username” value = FormPropertyConfig 對象
[ String name = “username” String / type = “java.lang.String” ]
key=“password” value = FormPropertyConfig 對象
[ String name =password" String / type = “java.lang.String” ]
自動收集表單數據到dynaValues 集合中:
key =“username”, value =[空串]
key =“password”, value =[空串]
收集完表單數據後立馬調用validation() 方法按照驗證規則進行處理:
通過username找到國際化資源文件,生成錯誤提示信息,則不能繼續執行
提示信息在login.jsp中顯示
<form-validation>
<formset>
<form name= "loginForm" >
<field property="username" depends=" required">
<arg key="prompt . username"/> //國際化資源文件
</field>
<field property="password" depends="required,mask">
<arg key="prompt . password"/>
<var>
<var- name>mask</ var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
</field>
</form>
</formset>
</form-validation>