<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 阅读(588)
评论(0) 编辑 收藏 所属分类:
struts