论坛首页 Java企业应用论坛

Spring-Validator 说明文档

浏览 5014 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-08  
Spring-Validator 的主要意图是为 Spring MVC 提供简洁、可配置的,实现类似于Struts的验证机制,提高 Spring 的开发效率。
 - 主要功能是
  使用配制文件,
    1. 提供 Spring 客户端验证机制;
    2. 提供 Spring 服务器端通用的可配置的验证;
  
    如果大家有兴趣,请到 http://sourceforge.net/projects/js-validation/ 下载,里边有例子,建议大家先看看例子(或者看struts-validator的那个例子也可以,效果差不多)。
   
    下边,我将具体说明
    1. 客户端的使用
    2. 服务器端的使用
    
    由于配置文件和struts中相同,且struts是如此的流行、广泛,所以不说配制文件的编写了,请查看struts的相关资料(只需修改使用dist下的validator-rules.xml、validation.xml即可)
   
    1. 客户端的使用
    原理呢,就是通过读取配制,在JSP页面中生成相应的javascript,然后点击submit的时候,Alert出相应的信息(虽然很多人讨厌这种方式,但这是最快最直接应用最广的方式,P:个人感觉,没有数据依据)。
    具体的过程呢,当然先是开发页面和程序,然后想到要加入验证机制,如姓名不能为空,生日必须是 yyyy-mm-dd等,还强烈的想看到客户在提交后被弹出对话框吓一跳,那么,我们开始吧,嘿嘿
    首先,配置先行了,在validation.xml中声明需要验证的form。
   
    其次,在 -servlet.xml中,声明apachValidatorResolvers
xml 代码
  1. <bean id="apachValidatorResolvers"  
  2.     class="com.avidmouse.validator.ApachValidatorResolvers">  
  3.     <property name="pathnames">  
  4.         <value>validator-rules.xml,validation.xml</value>  
  5.     </property>  
  6. </bean>  
     
    bean的id不一定非叫 apachValidatorResolvers,看自己习惯了。它用途是初始化配置,需要指定validator-rules.xml,validation.xml的位置,由于犯懒,同时也为了显示它的用途,没有提供默认值。
   
    然后,声明 javascriptValidator   
 <bean class="com.avidmouse.validator.jsvalidator.JavascriptValidatorApach" id="javascriptValidator"></bean>
    同样,id不做要求。它的主要是为生成所需的javascript,提供给taglib或者interceptor或者其他。
   
    最后,就是JSP的修改了。
      加入对验证taglib的声明
      <!---->
      在适当的位置(form后边),加入taglib引用 
   <vld:validate page="0" validationname="registrationForm"></vld:validate>
      page 默认值是0,所以page="0"可以省略  
    
    2. 服务器端的使用
    原理呢,实现org.springframework.validation.Validator,提供一个通用的validator。
    具体过程,和客户端的差不多,在需要添加验证时
    首先,在validation.xml中声明需要验证的form。
   
    其次,在 -servlet.xml中,声明apachValidatorResolvers
    
xml 代码
  1. <bean id="apachValidatorResolvers"  
  2.     class="com.avidmouse.validator.ApachValidatorResolvers">  
  3.     <property name="pathnames">  
  4.         <value>validator-rules.xml,validation.xml</value>  
  5.     </property>  
  6. </bean>  
       
   然后,为需要进行验证的form声明一个验证bean 
   
xml 代码
  1. <bean id="registrationValidator"  
  2.     class="com.avidmouse.validator.commons.ApachValidator">  
  3.     <property name="apachValidatorResolvers">  
  4.         <ref local="apachValidatorResolvers" />  
  5.     </property>  
  6.     <property name="formClass">  
  7.         <value>  
  8.             com.avidmouse.validator.simple.bus.RegistrationForm   
  9.         </value>  
  10.     </property>  
  11.     <property name="validatorName">  
  12.         <value>RegistrationForm</value>  
  13.     </property>  
  14.     <property name="page">  
  15.         <value>0</value>  
  16.     </property>  
  17. </bean>  

 formClass就是SimpleFormController的commandClass
 validatorName就是在配制中声明的form名称
 page 默认值是0,如果是0 ,可以不声明。
   
 最后,声明需要验证的bean的validator为上一步声明的bean
 
xml 代码
  1. <bean id="registration"  
  2.     class="com.avidmouse.validator.simple.web.RegFormController">  
  3.     <property name="sessionForm">  
  4.         <value>true</value>  
  5.     </property>  
  6.     <property name="commandClass">  
  7.         <value>  
  8.             com.avidmouse.validator.simple.bus.RegistrationForm   
  9.         </value>  
  10.     </property>  
  11.     <property name="validator">  
  12.         <ref bean="registrationValidator" />  
  13.     </property>  
  14.     <property name="formView">  
  15.         <value>registration</value>  
  16.     </property>  
  17.     <property name="successView">  
  18.         <value>regInfo</value>  
  19.     </property>  
  20. </bean>  
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics