下表详细介绍了validator元素每个属性的具体含义:
序号
属性
解释
1.
name
赋予校验规则一个唯一的名称,便于在validation-rules.xml文件和应用指定的其它校验文件中引用。
2.
classname
指定含有具体校验规则Java Class名,org.apache.struts.util.StrutsValidator是Validator框架自带的一个Java Class,它实现了一些很常用的校验规则。
3.
method
指定含有具体校验规则Java Class的具体方法,一个校验规则有实现校验的Java Class的一个方法来实现。
4.
methodParams
声明method属性所指定的方法的参数,参数之间用逗号分隔。
5.
msg
msg是用来指定当校验不通过时,Validator框架所给出的提示信息。它的值是应用所配置的资源文件中的一个关键字,当校验失败时,Validator框架利用msg所指定的值到应用配置的资源文件中去查找匹配记录。Validator框架默认使用以下提示信息:
errors.required={0} is required.
errors.minlength={0} cannot be less than {1} characters.
errors.maxlength={0} cannot 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 not a valid credit card number.
errors.email={0} is an invalid email address
可以将上面的这些信息添加到你的Struts应用所配置的资源文件(例如:ApplicationResources.properties)中,也可以修改这些值之后,将其添加到配置文件中,示例如下:
errors.required={0} 是必填项。
6.
depends
depends指定在本校验规则的前置校验规则,下面的片断定义了一个最小长度的校验规则,含义是在进行最小长度校验之前,会先调用required校验规则确保数据不为空:
<validator
name="minLength"
classname="org.apache.struts.util.StrutsValidator"
method="validateMinLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends="required"
msg="errors.minlength">
</validator>
如果存在多个前置校验规则,则可以用以下的方式进行声明,各校验规则之间用逗号分隔:
depends="required,integer"
如果前置校验规则失败,则后续的校验规则不会被执行。
7.
jsFunctionName
可选属性。用来指定JavaScript函数的名字。
The final attribute supported by the validator element is the jsFunctionName attribute. This optional attribute allows you to specify the name of the JavaScript function. By default, the Validator action name is used.
前面已经介绍了,org.apache.struts.util.StrutsValidator是Validator框架自带的一个校验规则类,其实现了一些常用的校验规则,其包含的校验方法(method)如下所列:
· validateByte 检查值能够安全地转换为byte
· validateCreditCard 检查值是一个有效的信用卡号码
· validateDate 检查值是一个有效的日期
· validateDouble检查值能够安全地转换为double
· validateEmail 检查值是一个有效的Email地址
· validateFloat 检查值能够安全地转换为double
· validateInteger 检查值能够安全地转换为int
· validateLong检查值能够安全地转换为long
· validateMask检查值符合掩码规则,掩码采用规则表达式的方式
· validateMinLength 检查值的长度大于等于指定长度
· validateMaxLength检查值的长度小于指定长度
· validateRange检查值的有效范围在指定范围内
· validateRequired检查值不为null或长度>0
· validateShort 检查值能够安全地转换为short