Chinaunix首页 | 论坛 | 博客
  • 博客访问: 446079
  • 博文数量: 750
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 12:36
文章分类

全部博文(750)

文章存档

2011年(1)

2008年(749)

我的朋友
最近访客

分类:

2008-09-09 15:24:30


  Validator框架如今成为Jakarta的公共项目的一部分,Struts携带了Validator框架,主要是两个jar文件,jakarta-oto.jar和commons-validator.jar文件.前者提供了一组处理文本的类,具有文本替换过滤和分割等功能,后者提供了一个简单的,可扩展的验证框架,包含了通用的验证方法和验证规则.如果Struts使用Validator需要添加那两个jar文件到lib目录.Validator框架采用了两个基于XML的配置文件来配置验证规则,这两个文件是validator-rules.xml和validation.在Struts应用中,它们放在WEB-INF目录.
  
  Validator-rules.xml文件包含了一组通用的验证规则,对所有的String都适用.一般的情况下没必要修改,除非需要修改或者扩展默认的规则.建议如果想扩展默认的验证规则,最好把自定义的客户化规则放在另一个XML文件中,这样当升级Validator框架版本的时候,也无需修改validator-rules.xml文件.因为这个XML是不推荐修改的,所以我只是简单的介绍一下具体的元素的几个属性,至于具体需要开发人员来开发的是validation的XML文件.元素的name属性指定验证规则的逻辑名,这个名字必须唯一.还有classname和method属性分别指实现验证规则逻辑的类和方法.msg属性指定来自Resource中的消息key,验证失败,根据这个消息Key去找匹配的消息文本.depends属性指定在调用当前验证规则之前必须调用其他验证规则.
  
  Validation.xml文件是针对某个具体的Struts应用,需要开发人员来创建的,它可以为应用中的ActionForm配置所需要的验证规则,取代ActionForm类中编程的方式来实现验证.元素是validatin.xml文件的根元素,它包含两个子元素,可以出现零次或者多次,而元素可以出现一次或者多次他们的DTD定义是:.元素可以定义子元素,它用来定义常量表达式,在文件中其余地方可以应用这些常量表达式.元素包含两个子元素
,元素用于为表单配置验证规则,它的name属性指定了表单的名字.包含一个或者多子元素,用于配置表单中字段的验证规则.子元素指定验证规则对应的消息文本,该消息文本替代validator-rules.xml文件中为验证规则配置的默认的消息文本.元素的主要属性是:name指定验证规则的名字,key当resource属性为true的时候,key属性指定的消息key该消息key应该在Resource Bundle中存在.key属性直接指定消息文本.resource当此项为true的时候,表示使用来自ResourceBundle的消息.元素还可以包括附加的子元素用于替换符合消息中的参数.元素元素还可以包含零个或者多个元素,用来向验证规则传递参数.
  
  Validator插件需要在Struts配置文件中配置ValidatorPlugIn插件如下:
  
  
    property=”pathnames”
  value=”/WEB-INF/validator-rules.xml/WEB-INF/validation.xml”/>
  

  
  当应用启动时,Struts框架会加载ValidatorPlugIn插件,并调用它的init()方法,根据pathnames属性,加载相应的validator-rules.xml和validation.xml文件,把验证信息读入到内存中.
  
  Validator框架不能用于验证标准的org.apache.struts.atcion.ActionForm类,如果要使用Validator框架,应该采用ActionForm的两个子类,validator包DynaValidatorForm和ValidatorForm类.DynaValidatorForm支持动态的ActionForm中使用Validator框架,ValidatorForm支持在标准的ActionForm中使用validator框架.无论是动态的还是标准的,它们的配置方法都一样.而且Struts的一些标签也可以和Validator框架协同工作,例如Validator框架提供了对I18N的支持,无论是客户端验证,还是验证.Validator框架都从应用ResourceBundle中获取错误信息.所以说它很好的支持的国际化.总结一下Struts应用中使用validator框架的步骤:
  
  创建扩展ValidatorForm或者ValidatorActionForm类的ActionForm类,如果使用动态的ActionForm,则无需创建扩展DynaValidatorForm或者DynaBalidatorActionForm类的子类,可以直接进行.
  
  在Struts配置文件中配置和元素.
  
  把Validator框架使用的消息文本添加到应用的ResourceBundle中.
  
  在Validation.xml文件中为表单配置验证规则.
  
  在Struts配置文件中配置ValidatorPlugIn插件.
  
  如果更深入的学习Validator验证框架,建议阅读孙卫琴的《精通Struts》一书,本人曾经从中受益匪浅,写文章的很多启发也来自该书.
【责编:admin】

--------------------next---------------------

阅读(737) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~