validator 验证框架学习笔记
validator 验证框架
六种类的关系:
1:普通form(从下向上继承)
ActionForm //不用验证框架作验证
|
|
validatorForm //使用验证框架时必须继承它,但只能做同一种验证(即只提交一个按键时的验证)
|
|
validatorActionForm //使用验证框架验证时,可以更为精确的去处理业务逻辑,针对的是不同的按键的path(即可以作不同的验证,如,既可以验证是否为空,又可以同时验证是否小于几位)
2:动态form(从下向上继承)
DynaActionForm
|
|
DynaValidatorForm
|
|
DynaValidatorActionForm
我们自己的form 必须继承validatorForm 或validatorActionForm 或DynavalidatorForm 或DynavalidatorActionForm
对于 validatorForm 和DynavalidatorForm 是针对form的验证
对于 validatorActionForm 和DynavalidatorActionForm 是针对path的验证
validator验证框架的使用(服务器端):
1.创建form,继承validatorForm 或validatorActionForm 或DynavalidatorForm 或DynavalidatorActionForm
××务必把form中的validate()方法去掉
2:在struts-config.xml文件中 注册validator验证框架(在validator-rules.xml有以下内容,不要求手写)
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
3:在validation.xml文件中指定哪个form的哪些属性做什么验证
<form name="logForm">//对于validatorForm 和DynavalidatorForm 是form的逻辑名,对于 validatorActionForm 和DynavalidatorActionForm 是path的内容
<field
property="name"//要验证的属性
depends="required,mask,minlength">//做哪些验证,mask指定必须为几位
<arg0 key="label.name"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>//设置错误信息
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>//用正则表达式表示只能是字符
</var>
<var>
<var-name>minlength</var-name>//最小长度
<var-value>7</var-value>
</var>
</field>
<field
property="date"
depends="required,date">//日期的验证
<arg0 key="label.date"/>
</field>
</form>
4:在applicationResource.properties文件中加上错误信息
//验证框架用的信息,可以用中文转化
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
//自己用到的信息
label.name=name
label.password=password
label.phone=phone
label.email =email
注意:运行前检查一下validation.xml和applicationResource.properties文件文件有没有部署到tomcat下
validator验证框架的使用(客户端):
前4步是一样的。
在jsp页面加上<html:javascript formName="logForm"/>,onsubmit="return validateLogForm(this)"
<html:form action="/log" focus="uname" onsubmit="return validateLogForm(this)"> //服务器自动生成的javascript函数名
email : <html:text property="email"/><html:errors property="email"/><br/>
uname : <html:text property="uname"/><html:errors property="uname"/><br/>
<html:submit/><html:cancel/>
</html:form>
<html:javascript formName="logForm"/>//formName相应的form名