validate验证框架

一、配置Validator框架
1、依赖两个JAR文件:jakarta-oro.jar和commons-validator.jar。
2、validator-rules.xml和validation.xml这两个基于XML的配置文件来配置验证规则。validator-rules.xml配置文件在加入struts支持时会自动添加到WEB-INF下,validation.xml文件是针对某个具体struts应用,开发人员自行创建。
3、采用插件机制把validator加入到struts框架中,在struts配置文件中配置validatorPlugIn插件。如:

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

二、Validator框架不能验证标准的org.apache.struts.action.ActionForm类,若要使用,应该采用ActionForm类的两个子类org.apache.struts.validator.DynaValidatorForm和org.apache.struts.validator.ValidatorForm,这两个类都实现了validate()方法,故创建

它们子类时就不用再覆盖validate()方法了。
1、实体ActionForm如果想通过Validator框架进行验证的话,你的ActionForm要继承于ValidatorForm
2、动态ActionForm如果想通过Validator框架进行验证的话,你的动态ActionForm要继承于DynaValidatorForm

 

三、validation.xml配置文件
validation.xml文件的头和validator-rules.xml一样,根节点也一样。

  1. <form-validation>
  2.  <formset>
  3.   <form name="ActionForm名称">
  4.    <field property="属性名称" depends="规则名称,用逗号隔开">
  5.     <msg name="验证规则名称" key="如果这个验证规则没过,将显示的资源文件中消息key值" />
  6.     <arg0 name="规则名称" key="${var:参数名}" resource="false" />
  7.    </field>
  8.   </form>
  9.  </formset>
  10. </form-validation>

设置单个验证门限:minlength,maxlength

  1. <field property="phone" depends="required,long,minlength,maxlength">
  2.         <!-- 验证是否为空 -->
  3.             <msg name="required" key="errors.required"/>
  4.             <arg0 name="required" key="phone" resource="false"/>
  5.             <!-- 验证是否为数字 -->
  6.             <msg name="long" key="errors.number"/>
  7.             <arg0 name="long" key="phone" resource="false"/>
  8.             
  9.             <msg name="minlength" key="errors.minlength"/>
  10.             <arg0 name="minlength" key="phone" resource="false"/>
  11.             <arg1 name="minlength" key="${var:minlength}" resource="false"/>
  12.             <!-- 设定门限 -->
  13.             <var>
  14.                 <var-name>minlength</var-name>
  15.                 <var-value>7</var-value>
  16.             </var>
  17.             
  18.             <msg name="maxlength" key="errors.maxlength"/>
  19.             <arg0 name="maxlength" key="phone" resource="false"/>
  20.             <arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
  21.             <!-- 设定门限 -->
  22.             <var>
  23.                 <var-name>maxlength</var-name>
  24.                 <var-value>10</var-value>
  25.             </var>
  26.         </field>

设置多个验证门限:intRange

  1.  <!-- 验证是否为email格式-->
  2. <field property="email" depends="required,email">
  3.             <msg name="required" key="errors.required"/>
  4.             <arg0 name="required" key="email" resource="false"/>
  5.             <msg name="email" key="errors.email"/>
  6.         </field>
  7.         
  8.         <field property="age" depends="required,integer,intRange">
  9.             <msg name="required" key="errors.required"/>
  10.             <arg0 name="required" key="age" resource="false"/>
  11.             <msg name="integer" key="errors.number"/>
  12.             <arg0 name="integer" key="age" resource="false"/>
  13.             <msg name="intRange" key="errors.range"/>
  14.             <arg0 name="intRange" key="age" resource="false"/>
  15.             <arg1 name="intRange" key="${var:min}" resource="false"/>
  16.             <arg2 name="intRange" key="${var:max}" resource="false"/>
  17.             <!-- 设定多个门限 规定:设定mix和max即可-->
  18.             <var>
  19.                 <var-name>min</var-name>
  20.                 <var-value>0</var-value>
  21.             </var>
  22.             <var>
  23.                 <var-name>max</var-name>
  24.                 <var-value>100</var-value>
  25.             </var>
  26.         </field>

<arg0/>  、<arg1/> 、<arg2/> 、<arg3/> 只有这四个,这是规定。分别对应资源文件里的{0}、{1}、{2}、{3}。

例如资源文件:

  1. errors.required={0} is null!
  2. errors.minlength=minlength of {0} is {1}!
  3. errors.maxlength=maxlength of {0} is {1}!
  4. errors.email=email is error!
  5. errors.number=phone is not a number!
  6. errors.range={0} must between {1} and {2}!

validator-rules.xml配置文件里还有很多其它的验证,如正则表达式、条件门限验证,都一样!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值