struts1.2的Validator验证框架使用

转载 2012年07月24日 14:55:30
    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配置验证规则。而不用编码实现验证。

3. struts-config.xml中配置<plug-in>

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

4.Validator和ActionForm
  Validator框架不能直接org.apache.struts.action.ActionForm。应采用ActionForm的两个子类
  ValidatorActionForm和ValidatorForm
  DynaValidatorActionFrom继续自DynaValidatorForm
  支持动态在ActionFrom中使用Validator框架
  ValidatorFormActionForm继承ValidatorForm
  支持在标准ActionForm中使用Validator框架。
  DynaValidtaorForom和ValidatorForm类都实现了validator()方法,如果验证失败,
      就会返回包含错误消息的ActionMessage对象,并把该对象添加到ActionErrors集合对象中,
      由validator方法最后返回ActionErrors对象。
  ValidatorForm有一个子类ValidatorActionForm
  ValidatorForm
Strust配置文件的元素的name属——>validator.xml文件 元素的name属性
  ValidatorActionForm
Strust配置文件的元素的path属——>validator.xml文件 元素的name属性
  Validator框架提供这两个类目的在于可以更加精确的控制执行验证的条件。
     而DynaValidatorForm和DynaValidatorActionForm的区别和
     ValidatorFrom和ValidatorActionForm的区别一样

     (Dyna)ValidatorFOrm和(Dyna)ValidatorActionForm的区别,
     它们的类名差了Action字样,区别就是Validator的验证时针对表单还是Action,
     不含有Action字样的类是完全针对表单进行验证,即使这个表单和多个Action关联,
     含有Action字样的类针对Action关联的表单进行验证。
     配置Validator的时候需要配置form标签,这个标签有个name属性,如果是针对表单验证,
     这里就写表单的name属性,如果是针对Action验证,这就写Action的path属性。

5.在validator框架中使用JavaScript
  默认情况下,validator框架在服务器端执行表单验证。也可以在客户端验证。
     如果在客户端验证,需要使用struts的标签,他能在jsp页面中生成用于客户端验证的JavaScript的脚本。

1) 在validator-rules.xml文件的元素中配置元素默认struts框架的validator-rules.xml文件已经包含了
      javascript子元素。也可以将这些javascript集中放到一个validator.js的文件中,在页面中引入代码

        

     <script language=”Javascript1.1″ src=”js/validator.js”>< /script>



2) 在Jsp页面中包含< html:javascript>
  < html:javascript formName=”loginForm”> 这个标签的form的name属性制定需要验证的表单名字,
    他能够访问为表单配置的验证规则的javascript元素,把包含的脚本写到jsp页面中,
    生成validateLoginForm的函数,负责执行验证逻辑
    或

     <html:javascript dynamicJavascript=”true” staticJavascript=”true” formName=”userForm”/>


 

3) 对需要验证的表单定义onsubmit事件

4)代码
     

<html:form  method=”post”  action=”regist.do” onsubmit=”return validateUserForm(this)”>

< html:form action=”manageContract.do” onsubmit=”return validateContractForm(this);”>

5) 用户在表单上提交后,就会调用
  标签生成的js脚本validateLoginForm函数,执行验证。如果验证失败,就会弹出对话框提示,
  不会提交的服务器端。

6.  在Jsp页面添加

     <%@ taglib uri=”/WEB-INF/struts-html.tld” prefix=”html”%>
     <%@ taglib uri=”/WEB-INF/struts-bean.tld” prefix=”bean”%>

7.  报错信息
     <html:errors/>

小结
  使用步骤
  1) 创建扩展ValidatorForm或ValidatorActionForm类的ActionForm,如果使用动态ActionForm,
  则不用扩展DynaValidatorForm或DynaValidatorActionForm类的子类,可以直接进行第二步
  2) 在struts文件中配置form和action元素
  3) 把validator框架使用的文本信息添加到应用的Resource Bundle中
  4) 代码
  < message-resources parameter=”com.web.ApplicationResources” />
  5) 在validatorxml文件中为表单配置验证规则
  6) 在struts配置文件中配置validatorPlugIn插件

        代码       

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

***********************************************************************
例如一个验证登陆form的例子,要求用户名必须填写,秘密要求必填、最大、最小长度及其内容的要求。

<form-validation> 
  <global> 
    <!– 密码由数字、26个英文字母或者下划线组成的字符串 –> 
    <constant> 
      <constant-name>pwd</constant-name> 
      <onstant-value>^\w+$</onstant-value> 
    </constant> 
  </global> 
  <formset> 
                   <!–
                      这里的name是取决于DynaValidatorForm和DynaValidatorActionForm
                      如果选DynaValidatorForm,这里的name就是action的name(即form-bean的name)
                      如果选DynaValidatorActionForm,这里的name就是action的path
                    –>
    <form name=”loginForm”> 
      <!–
                        这里的用户名使用邮箱,验证时使用正则表达式进行验证,
                        key跟资源文件中的键对应
                        如果多了 resource=”false” 这句话,那么它不会再从资源文件中去取,
                 而是直接用 key 值来表示。
                 如<arg1 name=”maxlength” resource=”false” key=”${var:maxlength}”/>中的
                 arg1要与错误信息中所对应的该验证器的参数一至
                (errors.maxlength={0} can not be greater than {1} characters.)
                 如果(errors.maxlength={0} can not be greater than {2} characters.)的话,
                 那么就必须将2改为1 
                  –> 
      <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>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sukyle/archive/2009/04/08/4056119.aspx


使用Validator做SpringMVC的验证框架 - 配置SpringMVC环境

让我们用Validator框架来给SpringMVC实现验证功能吧 Validator框架源码地址:https://github.com/devefx/validator 完成这一章教程的要求 熟...
  • devefx
  • devefx
  • 2016年06月02日 11:28
  • 3944

使用Validator做SpringMVC的验证框架 - 使用Validator

前面一章我们已经搭好SpringMVC的环境了。现在开始学习Validator框架的使用吧 Validator框架源码地址:https://github.com/devefx/validator ...
  • devefx
  • devefx
  • 2016年06月02日 15:35
  • 3717

使用Validator做SpringMVC的验证框架 - Validator前端验证

上一章只为大家介绍了Validator的后端验证功能,接下来就为大家介绍一下Validator前端功能,你会发现他的巧妙之处。 Validator框架源码地址:https://github.com...
  • devefx
  • devefx
  • 2016年06月03日 09:58
  • 5158

validator验证框架的简单使用(struts)

  • 2011年02月07日 14:27
  • 17KB
  • 下载

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

Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框...
  • pcdaan
  • pcdaan
  • 2011年04月12日 23:32
  • 571

struts validator验证框架项目

  • 2009年04月15日 02:36
  • 1.17MB
  • 下载

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

转自: http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0...
  • DADADIE
  • DADADIE
  • 2015年04月21日 21:20
  • 1445

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

一、Validator框架的优势     Validator框架是一个Struts插件,最初由David Winterfeldt设计并实现。Validator框架从Struts 0.5时代就可以使用...
  • scoredevil
  • scoredevil
  • 2011年09月07日 10:17
  • 296

struts1.3+validator验证框架应用报异常的解决方案

[main] ERROR org.apache.struts.action.ActionServlet - Unable to initialize Struts ActionServlet due ...
  • hu_shengyang
  • hu_shengyang
  • 2011年10月12日 19:23
  • 2737

struts validator验证框架

1、配置: * 加入国际化配置在struts-config.xml文件中,如:   * 提供国际化资源文件 * 引入validator插件在struts-config.xml文件中,如:     ...
  • yjsuge
  • yjsuge
  • 2011年07月20日 22:47
  • 351
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts1.2的Validator验证框架使用
举报原因:
原因补充:

(最多只允许输入30个字)