在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>