在Struts中使用Validator验证框架详解

豆豆网   技术应用频道   2007年07月27日    社区交流

内容摘要:Validator采用基于两个xml文件的方式来配置验证规则,分别为validation.xml,validator-rules.xml。在struts应用中,需放到web-inf目录下。

  Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的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的例子,要求用户名必须填写,秘密要求必填、最大、最小长度及其内容的要求。

  代码

<form-validation> 
  <global> 
    <!-- 密码由数字、26个英文字母或者下划线组成的字符串 --> 
    <constant> 
      <constant-name>pwd</constant-name> 
      <onstant-value>^w+$</onstant-value> 
    </constant> 
  </global> 
  <formset> 
    <form name="loginForm"> 
      <!-- 这里的用户名使用邮箱,验证时使用正则表达式进行验证 --> 
      <field property="user.userId" depends="required"> 
        <arg0 key="user.userId" /> 
      </field> 
      <field property="user.userPwd" depends="required,minlength,maxlength,mask"> 
        <!-- msg name="mask" key="errors.invalid" /--> 
        <arg0 key="user.userPwd" /> 
        <arg1 name="minlength" key="${var:minlength}" resource="false" /> 
        <arg2 name="maxlength" key="${var:maxlength}" resource="false" /> 
        <var> 
          <var-name>mask</var-name> 
          <var-value>^w+$</var-value> 
        </var> 
        <var> 
          <var-name>minlength</var-name> 
          <var-value>6</var-value> 
        </var> 
        <var> 
          <var-name>maxlength</var-name> 
          <var-value>20</var-value> 
        </var> 
      </field> 
    </form> 
  </formset> 
</form-validation>

责编:豆豆技术应用

正在加载评论...