第十一章
270
验证规则,使之依赖其他的多个验证规则,做法就是在 depends 属性中列出这些规则,
并以逗号隔开:
depends = "required,integer"
如果depends属性中所指定的规则验证失败,那么不会再调用下一条规则。以先前所示
的minLength验证规则为例,如果required规则验证失败,那么validateMinLength()
方法就不会被调用了。这应该是理所当然的,因为如果值不存在,检查值的长度根本没
有意义。
最后一个属性是 jsFunctionName。这个可选的属性允许指定JavaScript 函数的名。默
认地,所用的是 Validator 动作的名。
Validator框架是相当通用的(generic),它包含了一些非常基本的规则,可以让任何应
用程序使用。正如你将在本章稍后所见,这种通用性让它也能适用于Struts以外的应用
程序。org.apache.commons.Validator.GenericValidator类将这些通用规则实现为
公共的静态方法。表 11-1 列出了 GenericValidator 类中可供使用的验证规则。
表 11-1:GenericValidator类中的验证规则
方法名 说明
isBlankOrNull 检查字段是否为 null,以及该字段的长度是否大于 0,但空白符不计
isByte 检查字段值是否可以安全地转换成 byte 基本数据类型
isCreditCard 检查字段值是否为有效的信用卡号码
isDate 检查字段值是否为有效的日期
isDouble 检查字段值是否可以安全地转换成 double 基本数据类型
isEmail 检查字段值是否为有效的电子邮件地址
isFloat 检查字段值是否可以安全地转换成 float 基本数据类型
isInRange 检查字段值是否介于最小值和最大值的范围之内
isInt 检查字段值是否可以安全地转换成 int 基本数据类型
isLong 检查字段值是否可以安全地转换成 long 基本数据类型
isShort 检查字段值是否可以安全地转换成 short 基本数据类型
matchRegex p 检查字段值是否匹配正规表达式
maxLength 检查字段值是否小于或等于最大值
minLength 检查字段值是否大于或等于最小值
由于 GenericValidator 类中的验证规则粒度如此之细,Struts 开发人员在 Struts 框架
中新增了一个名为 org.apache.struts.util.StrutsValidator 的工具类;其中定义
61