struts中validator框架学习笔记

1.将ActionForm改为ValidatorForm,若是DynaActionForm,则将struts配置文件中的form对象改为DynaActionForm,因为要使用Validator进行验证,只能是ValidatorForm或DynaValidatorForm两种。

2.将org.apache.struts.validator下的validator-rules.xml里的内容考过来,根据需要,将部分规则拷贝到/WEB-INF/validator-rules.xml里(该文件名随便取,一般和原文件名相同);再在/WEB-INF/下创建validator.xml文件,该文件就是配置那些需要验证的form元素。

介绍下validator_1_3_0.dtd中的元素:

global:全局定义,它类似于struts配置文件中的<global-forwards>元素,在它里面配置的validator, constant相当于全

局actionform。

validator:定义规则,如validator-rules.xml中的规则定义。

validator属性介绍:name为规则名,classname标签调用的类路径,method调用的方法名,methodParams参数类型,

msg为resources资源文件中的key,当验证未通过时,调用将显示该错误信息。

顺便提下,在validator-rules.xml的那些规则中,已经定义了默认的key,最好把里面的那些key-value值拷到resources国际化资源文件中。

constant:定义常量,怎么定义就不说了,和web.xml中的init-param定义一样,提下它的调用方式:${constantName}

 

formset:局部constant和form是设置

constant:定义和全局一样,只是它的作用域只能在该formset种使用。

form:定义form,其中属性name必须为要进行验证的那个ActionForm在name,这里不说DynaValidatorActionForm。

field:定义actionform中的属性,property=actionform中的属性名,depends为要使用的规则名(validator中

         的name),page和indexedListProperty不是经常用不作介绍,感兴趣的话可以去

         http://gstarwd.javaeye.com/blog/540321看看。

msg:用于更改默认的规则msg,属性name必须为form中的depends中的一种规则名,key为resources中

         的key,bundle和resource不作介绍。

arg:嵌入msg中的值,属性name为要嵌入的规则名,key为要嵌入的值可以为var中定义的值以及resources中的

        key,resource为是否检查resources文件中的key,position为要嵌入的第就个{?}(注意:

        在validator_1_3_0.dtd之前是用arg0-arg4)

var:用来向验证规则传递参数,定义和常量一样,调用方法:${var:varName}

 注意:在arg中不能调用常量作值,因为它会将该常量当作key值进行查找,会包个error消息

3.在struts配置文件中将

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
  <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
 </plug-in>加入,以及配置resources文件。

到此基本可以了

 

如要在页面进行验证,修改如下:

将<form action="login.do" method="post">改为:

<html:form action="login.do" οnsubmit="return validateXXXXX(this)" method="post">该XXXXX为struts中的actionform的name,注意第一个字母改为大写。

 

添加:

<html:javascript formName="XXXXX"/>该XXXXX为actionform的name,无需修改第一个字母

 

<html:errors/>     打印输出错误信息。

 

 

 

注意:如要在界面进行验证,在配置web.xml时,<load-on-startup>标签,以保证validator在页面加载前加载,否则会出现如下异常:

java.lang.NullPointerException: Module 'null' not found

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值