Spring-Validator 说明文档

本文介绍了Spring-Validator的主要意图是为Spring MVC提供类似Struts的验证机制,提高开发效率。详细说明了其客户端和服务器端的使用方法,包括配置文件的声明、bean的定义以及JSP页面的修改等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                    
    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
   
    <bean id="apachValidatorResolvers" class="com.avidmouse.validator.ApachValidatorResolvers">
  <property name="pathnames">
   <value>validator-rules.xml,validation.xml</value>
  </property>
 </bean>
    bean的id不一定非叫 apachValidatorResolvers,看自己习惯了。它用途是初始化配置,需要指定validator-rules.xml,validation.xml的位置,由于犯懒,同时也为了显示它的用途,没有提供默认值。
   
    然后,声明 javascriptValidator   
 <bean id="javascriptValidator" class="com.avidmouse.validator.jsvalidator.JavascriptValidatorApach"/>
    同样,id不做要求。它的主要是为生成所需的javascript,提供给taglib或者interceptor或者其他。
   
    最后,就是JSP的修改了。
      加入对验证taglib的声明
      <%@ taglib prefix="vld" uri=" http://www.avidmouse.com/tags"%>
      在适当的位置(form后边),加入taglib引用 
   <vld:validate validationName="registrationForm" page="0"/>
      page 默认值是0,所以page="0"可以省略
     
    好了,enjoy it。
   
    2. 服务器端的使用
    原理呢,实现org.springframework.validation.Validator,提供一个通用的validator。
    具体过程,和客户端的差不多,在需要添加验证时
    首先,在validation.xml中声明需要验证的form。
   
    其次,在 -servlet.xml中,声明apachValidatorResolvers
   
    <bean id="apachValidatorResolvers" class="com.avidmouse.validator.ApachValidatorResolvers">
  <property name="pathnames">
   <value>validator-rules.xml,validation.xml</value>
  </property>
 </bean>
  
   然后,为需要进行验证的form声明一个验证bean 
   <bean id="registrationValidator" class="com.avidmouse.validator.commons.ApachValidator">
  <property name="apachValidatorResolvers">
   <ref local="apachValidatorResolvers"/>
  </property>
  <property name="formClass"><value>com.avidmouse.validator.simple.bus.RegistrationForm</value></property>
  <property name="validatorName"><value>RegistrationForm</value></property>
  <property name="page"><value>0</value></property>    
 </bean>
 formClass就是SimpleFormController的commandClass
 validatorName就是在配制中声明的form名称
 page 默认值是0,如果是0 ,可以不声明。
   
  最后,声明需要验证的bean的validator为上一步声明的bean
 <bean id="registration" class="com.avidmouse.validator.simple.web.RegFormController">
        <property name="sessionForm"><value>true</value></property>
        <property name="commandClass"><value>com.avidmouse.validator.simple.bus.RegistrationForm</value></property>
        <property name="validator"><ref bean="registrationValidator"/></property>
        <property name="formView"><value>registration</value></property>
        <property name="successView"><value>regInfo</value></property>
    </bean>
   
 好了,enjoy it again。
Hibernate Validator 是一个基于 Java Bean Validation 规范(JSR 380)的参考实现,用于对 Java 对象的属性进行验证。你提到的 `hibernate-validator-relocation` 并不是 Hibernate Validator 官方文档或常见术语中的标准词汇,可能是与 Hibernate Validator 的迁移、依赖管理或版本更新相关的内容。 ### 可能的含义和解释: 1. **依赖迁移(Relocation)** 在 Maven 或 Gradle 中,`relocation` 通常指依赖的 `groupId` 或 `artifactId` 发生了变更。例如,Hibernate Validator 的旧版本可能使用 `org.hibernate:hibernate-validator`,而新版本可能调整为其他坐标(如 `org.hibernate.validator:hibernate-validator`)。这种情况下需要更新项目的依赖配置。 2. **版本升级或模块调整** Hibernate Validator 的某些版本可能对模块结构进行了重构(例如将核心验证逻辑拆分为多个子模块),导致需要调整依赖关系。 3. **类或包的迁移** 如果代码中直接引用了 Hibernate Validator 的内部类或包(如 `org.hibernate.validator.internal`),在版本升级时这些类可能被迁移到其他包路径,导致编译错误。 ### 解决方案示例(Maven 依赖更新): 如果遇到依赖迁移问题,可以检查最新版本的 Maven 坐标。例如: ```xml <!-- Hibernate Validator 最新版本(示例) --> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>8.0.1.Final</version> <!-- 替换为实际版本 --> </dependency> ``` ### 注意事项: - 确保与 Bean Validation API 版本兼容(如 `javax.validation:validation-api` 或 `jakarta.validation:jakarta.validation-api`)。 - 如果使用 Spring Boot,依赖通常由 `spring-boot-starter-validation` 自动管理,无需显式声明 Hibernate Validator 版本。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值