Validator框架JS检验功能 - ℡瀦娃娃ゞɑ - JavaEye技术网站
来源:百度文库 编辑:神马文学网 时间:2024/05/11 19:14:32
在之前的校验案例中我们使用了validator框架中的”required、minLength、maxLength”这几种校验规则,对于这些规则我们知道都配置在validator-rules.xml文件中了,纵观里面的规则,我们可发现还有很多其它的校验规则,其中“mask”可以校验正则表达式,“date”可校验日期格式,“email”可校验邮件的格式,可见这框架的强大之处,我们使用”date”和”email”分别来校验表单中的日期和邮件输入的格式,首先在表单中增加两个这样的输入域,然后在userForm中对应的增加字段,然后在校验文件中增加如下两个字段的校验:
depends="email">
depends="date">
datePattern
yyyy-MM-dd
校验邮件格式跟之前的几个校验没啥区别,但是日期格式的校验时我们得设置日期匹配的类型变量,这样就能达到日期和邮件的校验了,对于这种自身的校验之外,还有一种校验,如确认密码和密码是否是相同的这样的校验则不是单纯校验本身了,而是跟别的进行一个对比,这时另一种校验规则出现了,“validwhen”,它是专门来校验像这种复杂类型的校验规则,所以我们在表单中再添加一个文本域叫password2,然后在formbean中添加相应的字段,最后我们在校验文件中进行配置,用这种校验时得注意,因为它的消息KEY和”required”校验器的是一样的,都是“errors.required”,所以这时我们同时用上这两个校验规则,从中来说明一个问题,这个字段的校验如下:
depends="required,validwhen">
test
(*this* == password)
在使用“validwhen”校验器进行校验时我们得设置test变量,在使用这个校验器时我们还面临一个问题,之前也说过了,它的消息KEY跟”required”是一样的,当对一个字段进行校验时这两个校验规则并存时就应该采取相应的措施来避免冲突的产生,我们让required还保持默认,所以我们用arg来进行参数的配置,而validwhen则不能采用默认了,我们应该改变它的消息KEY,这时我们可用msg标签来进行替换,name指的是哪个校验器发生时,key则表示会用指定的消息KEY,这是使用这个校验器的一个需要注意的问题。
可能在实际中我们会遇到如下情况:如果两个Action关联的是同一个ActionForm,但它们的校检规则可能不一样,在ActionForm中该如何编写validate方法?例如,增加用户和修改用户时可使用同一个ActionForm,但是修改用户不需要校验密码:
校验邮件格式跟之前的几个校验没啥区别,但是日期格式的校验时我们得设置日期匹配的类型变量,这样就能达到日期和邮件的校验了,对于这种自身的校验之外,还有一种校验,如确认密码和密码是否是相同的这样的校验则不是单纯校验本身了,而是跟别的进行一个对比,这时另一种校验规则出现了,“validwhen”,它是专门来校验像这种复杂类型的校验规则,所以我们在表单中再添加一个文本域叫password2,然后在formbean中添加相应的字段,最后我们在校验文件中进行配置,用这种校验时得注意,因为它的消息KEY和”required”校验器的是一样的,都是“errors.required”,所以这时我们同时用上这两个校验规则,从中来说明一个问题,这个字段的校验如下:
在使用“validwhen”校验器进行校验时我们得设置test变量,在使用这个校验器时我们还面临一个问题,之前也说过了,它的消息KEY跟”required”是一样的,当对一个字段进行校验时这两个校验规则并存时就应该采取相应的措施来避免冲突的产生,我们让required还保持默认,所以我们用arg来进行参数的配置,而validwhen则不能采用默认了,我们应该改变它的消息KEY,这时我们可用msg标签来进行替换,name指的是哪个校验器发生时,key则表示会用指定的消息KEY,这是使用这个校验器的一个需要注意的问题。
可能在实际中我们会遇到如下情况:如果两个Action关联的是同一个ActionForm,但它们的校检规则可能不一样,在ActionForm中该如何编写validate方法?例如,增加用户和修改用户时可使用同一个ActionForm,但是修改用户不需要校验密码: