分类:
2008-07-28 11:56:46
Validatro框架以成为Jakarta的公共项目的一部分,可以从下载单独的Validator框架,在Struts中已经呆了这个框架。
Validator主要依赖两个jar包
Jakarta-oro.jar:-提供一组处理文本的类,具有文本替换、过滤、和分割功能。
Commons-validator.jar:提供了一个简单、可扩展的验证框架,包含了通用的验证方法和验证规则。
在用Struts中用这个框架,需加入这两个包,用起来感觉还不错。
下面介绍一下。
Validator采用基于两个xml文件的方式来配置验证规则,分别为validation.xml,validator-rules.xml。在struts应用中,需放到web-inf目录下。
1.validator-rules.xml
这个文件包含了一组验证规则,对所有struts应用都适用。一般情况不用修改这个文件,除非要修改或扩展默认规则。如果要给应放到另一个xml文件中,而不是直接添加到validator-rules.xml文件中,这样当Validator升级时,不用修改validator-rules.xml文件。
2.validator.xml文件
这个文件是针对于具体struts应用的,他可以为应用中的ActionForm配置验证规则。而不用编码实现验证。
例如一个验证登陆form的例子,要求用户名必须填写,秘密要求必填、最大、最小长度及其内容的要求。
代码
|
validator.xml和validator-rules.xml文件的语法不在这里说明。
3.Validator插件
为了在struts中用validator,可以用插件方式加载Validator框架,需在struts配置文件中配置ValidatorPlugIn插件,同时写明两个xml文件的路径。
应用启动时,Strust会加载这个插件,并调用他的init()方法,init()方法根据pathnames加载
相应的validator-xml,validator.xml文件,把验证信息读入到内存中。
代码
4.Validator和ActionForm
Validator框架不能直接org.apache.struts.action.ActionForm。应采用ActionForm的两个子类
ValidatorActionForm和ValidatorForm
DynaValidatorActionFrom继续自DynaValidatorForm
支持动态在ActionFrom中使用Validator框架
ValidatorFormActionForm继承ValidatorForm
支持在标准ActionForm中使用Validator框架。
DynaValidtaorForom和ValidatorForm类都实现了validator()方法,如果验证失败,就会返回包含错误消息的ActionMessage对象,并把该对象添加到ActionErrors集合对象中,由validator方法最后返回ActionErrors对象。
ValidatorForm有一个子类ValidatorActionForm
ValidatorForm
Strust配置文件的