Spring validator提供对项目中的POJO或其他需要验证的地方进行验证的接口Validator。该接口有两个方法分别为:
boolean supports(Class<?> clazz); 是否支持对提供的类进行验证 void validate(Object target, Errors errors);具体验证的过程和规则。
一。Photo
package com.spring;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 11-9-6
* Time: 下午10:01
*/
public class Photo {
private String name;
private String path;
private String description;
public Photo(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
二。PhotoValidator 实现Validator接口
package com.dream.validator;
import com.dream.model.photo.Photo;
import org.springframework.validation.*;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 11-9-6
* Time: 下午9:39
*/
public class PhotoValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return Photo.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmpty(errors, "name", "Empty name of photo");
Photo photo = (Photo) target;
String name = photo.getName();
if (name.length() > 10) {
errors.rejectValue("name", "Too long of name's length");
}
}
}
三。ValidatorTest
package com.spring;
import com.dream.model.photo.Photo;
import com.dream.validator.PhotoValidator;
import junit.framework.TestCase;
import org.springframework.validation.DirectFieldBindingResult;
import org.springframework.validation.Errors;
import org.springframework.validation.ObjectError;
import org.springframework.validation.Validator;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 11-9-6
* Time: 下午9:38
*/
public class ValidatorTest extends TestCase {
public void testValidator() throws Exception {
Photo photo = new Photo("This is the name of a photo.");
Validator validator = new PhotoValidator();
Errors errors = new DirectFieldBindingResult(photo, "photo");
boolean isSupport = validator.supports(Photo.class);
validator.validate(photo, errors);
List<ObjectError> allErrors = errors.getAllErrors();
assertTrue(isSupport);
assertEquals(1, allErrors.size());
assertEquals("Too long of name's length", allErrors.get(0).getCode());
}
}
Spring提供了一个工具类ValidationUtils,主要有这样几个方法,1.invokeValidator:执行Validator验证;2.rejectIfEmpty:执行空值验证;
3.rejectIfEmptyOrWhitespace:执行空值或空白字符串验证。
分享到:
相关推荐
Spring Validator验证是Spring MVC框架中的一个关键特性,用于在服务器端对用户输入数据进行校验。在Spring MVC 3.0版本中,引入了注解驱动的验证方式,极大地简化了验证逻辑,使得开发者能够更加方便地处理表单数据...
how to use spring validator
Spring Validator 接口校验与全局异常处理器 Spring Validator 接口校验是 Spring 框架中的一种校验机制,它允许开发者在外部指定某一对象的校验规则。该机制的核心是 Validator 接口,该接口定义了两个方法:...
在Spring框架中,Validator接口是用于数据验证的核心组件,它为我们的业务逻辑提供了一种标准的方式来验证对象的属性。在本教程中,我们将深入探讨如何使用Spring的Validator机制来实现一个具体的验证示例。 首先,...
spring-validator-rules.xml
《Casa-Codigo-Spring-Web-Example-Book-Store:使用Spring Validator》是一个示例项目,它展示了如何在基于Java的Spring Web应用程序中利用Spring框架的验证功能。在这个项目中,开发者可以学习到如何有效地处理...
在Spring框架中,`Validator`接口提供了一种优雅的方式来实现数据的校验,尤其是在处理用户输入或业务逻辑之前确保数据的正确性。Spring的`Validator`组件遵循DRY(Don't Repeat Yourself)原则,帮助开发者避免重复...
Java 微服务实践-Spring Boot 验证 本文档主要介绍 Java 微服务...本文档旨在帮助读者了解 Java 微服务实践中的验证机制,并掌握 Apache Commons Validator、Bean Validation 1.0 和 Spring Validator 的使用和配置。
Spring Boot 使用 Validator 校验方式 Spring Boot 中使用 Validator 校验方式是一种非常实用的方法,它可以帮助我们轻松地对用户输入进行校验,从而确保数据的正确性和安全性。本文将详细介绍 Spring Boot 如何...
这个Demo示范了怎么通过Spring的Validator接口来进行数据验证,包括Validator的复用、jsp错误信息的展示等。可参考本人博客: http://blog.csdn.net/oLanMoMo/article/details/50530352
Spring Boot Validator 枚举值校验功能实现 在 Spring Boot 项目中,校验参数功能是一个非常重要的组件,可以帮助我们确保用户输入的数据是否合法。如果我们想校验枚举值,那么 Spring Boot Validator 就是一个不错...
- **使用Spring Validator接口**:Spring提供了一套验证框架。 - **将代码解析为错误消息**:如何配置错误消息。 - **bean操作和BeanWrapper**:提供了对Bean的操作支持。 - **Spring类型转换**:Spring支持多种...
Spring Framework提供了一个强大的数据验证框架——Spring Validator,它允许开发者以一种声明式的方式对Bean对象进行验证,类似于JavaScript中的验证规则。在本文中,我们将深入探讨`validation jar包`,包括Spring...
JSValidation致力于改善这一过程。它将常见的校验(目前支持13种)封装起来,并创造性的采用xml来存贮表单验证信息,使得表单的验证成为整个项目中最不重要的环节,开发者只需要定义几个xml标记,就可以创建出复杂的...
SpringBoot 使用 Hibernate Validator 校验 Hibernate Validator 是 Java 中的一个验证框架,提供了许多有用的 注解来验证对象的属性。SpringBoot 项目中可以使用 Hibernate Validator 来实现数据验证。本文将详细...
《Struts Hibernate Spring 集成开发宝典》是一本深度探讨企业级Java应用开发的著作,重点关注了三个核心框架的整合使用:Struts、Hibernate和Spring。这三大框架是Java Web开发中的重要组成部分,各自在不同的层面...
"Spring Validator Boot" 是一个基于Java的项目,它利用了Spring框架和Bean Validation(JSR-303/JSR-349)规范来提供数据验证功能,特别是在Spring Boot应用中。这个项目的目的是简化在Spring Boot应用中实现数据...
在本文中,我们将深入探讨如何使用Spring 3.0与Springmodules进行无侵入式的Validator实现,重点关注基于注解的验证方法。同时,我们也会提到正则表达式在验证过程中的应用,以及如何将这个Java Web工程部署到Web...
- **使用 Spring Validator**:在 Marshalling 端点中集成 Spring 验证器。 - **@Endpoint 注解**:标记端点类的注解。 ##### 5.5 端点映射 描述了如何将消息路由到正确的端点。 - **...
spring mvc校验框架所需的几个jar包hibernate-validator-6.0.7.Final.jar、logging-3.1.0.CR2.jar、validator-api-2.0.2.jar