快速业务通道

Struts1.x系列教程(10):Validator验证框架入门 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

Struts1.x系列教程(10):Validator验证框架入门

时间:2011-01-10 BlogJava 银河使者

一、Validator框架的优势

Validator框架是一个Struts插件,最初由David Winterfeldt设计并实现。Validator框架从Struts 0.5时代就可以使用,但那时Validator框架只是被捐助的一个jar包。Apache组织为了使开发人员更方便地使用Validator框架,决定从Struts1.1开始,将Validator框架作为Struts的一部分同Struts一起发布。

Validator框架可以在XML文件中配置验证规则和验证对象。因此,使用Validator框架可以无需在ActionForm的子类中覆盖validate方法就可以很方便地验证客户端的提交数据。由于Validator框架内置了很多预定义的验证机制,如验证某个属性是否存在,验证EMail是否合法等。所以在一般情况下,只需要配置XML文件就可以满足我们的验证需求。

在使用Validator框架时,就会发现这种方式要比直接使用validate方法进行验证会给我们带来如下的好处:

1.更容易维护。 由于验证信息可以被放置在同一个配置文件中,因此,我们可以更容易地来维护这些验证信息。

2.标准化。由于很多简单的验证都是相同的。如用户名和密码都要求由字母、数字以及下划下组成。如果将这些验证都写在validate方法中,对这些验证进行标准化非常困难。而在Validator框架中的这些验证机制都是预先定义的,因此,标准化相同的验证对于Validator框架来说将是一件非常轻松的事。

3.避免重造轮子。虽然一些验证很简单,但如果想正确实现它们也是非常困难的。一个典型的例子是验证EMail地址的格式。如果这个验证要想完美无缺,就必须按着RFC-2822规范的要求来验证EMail地址。而如果我们使用Validator框架,就无需再重造轮子来验证EMail地址了。

4.减少重复代码的数量。由于Validator框架提供了很多预定义的验证,因此,我们可以避免自己写很多重复的代码进行验证。当然,我们也可以将大量使用的验证封装在类的方法中,这些虽然可以避免大量的重复劳动,但这就意味着我们团队的新成员要使用这些被封装的验证方法之前必须先学习它们。而最糟糕的情况是很多开发人员可能会忘记使用这些由其他成员实现的验证库,而自己重新编写具有同样功能的验证库。当然,这一切如果使用Validator框架就都可以得到解决。

5.客户端和服务端验证自动切换。我们只需要简单地在JSP页面中放一个单独的<html::javascript/>元素就可以将服务端的验证转换为客户端验证(基于JavaScript的验证)

虽然Validator框架的预定义验证已经可以满足大多数的验证需求了,但在某些特殊情况下,这些预定义验证就无法满足我们的需求了,为此,Validator框架也为开发人员提供了扩展验证机制的功能。这也使得Validator框架可以完成更复杂的验证工作。

二、配置和使用Validator框架

1.安装Validator框架

由于Validator是Struts的一个插件,因此,就需要在struts-config.xml文件中按着Struts插件的方式来安装Validator框架。打开struts-config.xml文件,在<struts-config>元素中加入一个<plug-in>子元素,如下面的代码所示:

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml"/> </plug-in>

其中<set-property>元素设置了插件中使用的pathnames属性的值。在pathnames属性值中包含了两个xml文件。

(1)validator-rules.xml:在这个文件中声明了Validator框架的预定义验证。这个文件可以在Struts的发行包的lib目录中可以找到这个文件。在使用MyEclipse为Web工程添加Struts功能后,会自动将这个文件加

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号