`
Wind_ZhongGang
  • 浏览: 264722 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring validator

阅读更多

  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 Validator验证是Spring MVC框架中的一个关键特性,用于在服务器端对用户输入数据进行校验。在Spring MVC 3.0版本中,引入了注解驱动的验证方式,极大地简化了验证逻辑,使得开发者能够更加方便地处理表单数据...

    how to use spring validator

    how to use spring validator

    Spring Validator接口校验与全局异常处理器

    Spring Validator 接口校验与全局异常处理器 Spring Validator 接口校验是 Spring 框架中的一种校验机制,它允许开发者在外部指定某一对象的校验规则。该机制的核心是 Validator 接口,该接口定义了两个方法:...

    spring 学习 validator例子

    在Spring框架中,Validator接口是用于数据验证的核心组件,它为我们的业务逻辑提供了一种标准的方式来验证对象的属性。在本教程中,我们将深入探讨如何使用Spring的Validator机制来实现一个具体的验证示例。 首先,...

    spring-validator-rules.xml

    spring-validator-rules.xml

    Casa-Codigo-Spring-Web-Example-Book-Store:-使用Spring Validator

    《Casa-Codigo-Spring-Web-Example-Book-Store:使用Spring Validator》是一个示例项目,它展示了如何在基于Java的Spring Web应用程序中利用Spring框架的验证功能。在这个项目中,开发者可以学习到如何有效地处理...

    Spring中校验器(Validator)的深入讲解

    在Spring框架中,`Validator`接口提供了一种优雅的方式来实现数据的校验,尤其是在处理用户输入或业务逻辑之前确保数据的正确性。Spring的`Validator`组件遵循DRY(Don't Repeat Yourself)原则,帮助开发者避免重复...

    [课堂课件讲解]Java微服务实践-Spring Boot 验证.pptx

    Java 微服务实践-Spring Boot 验证 本文档主要介绍 Java 微服务...本文档旨在帮助读者了解 Java 微服务实践中的验证机制,并掌握 Apache Commons Validator、Bean Validation 1.0 和 Spring Validator 的使用和配置。

    springboot使用Validator校验方式

    Spring Boot 使用 Validator 校验方式 Spring Boot 中使用 Validator 校验方式是一种非常实用的方法,它可以帮助我们轻松地对用户输入进行校验,从而确保数据的正确性和安全性。本文将详细介绍 Spring Boot 如何...

    validation jar包

    Spring Framework提供了一个强大的数据验证框架——Spring Validator,它允许开发者以一种声明式的方式对Bean对象进行验证,类似于JavaScript中的验证规则。在本文中,我们将深入探讨`validation jar包`,包括Spring...

    Demo——使用Spring的Validator接口进行数据验证

    这个Demo示范了怎么通过Spring的Validator接口来进行数据验证,包括Validator的复用、jsp错误信息的展示等。可参考本人博客: http://blog.csdn.net/oLanMoMo/article/details/50530352

    springboot validator枚举值校验功能实现

    Spring Boot Validator 枚举值校验功能实现 在 Spring Boot 项目中,校验参数功能是一个非常重要的组件,可以帮助我们确保用户输入的数据是否合法。如果我们想校验枚举值,那么 Spring Boot Validator 就是一个不错...

    Spring5.1中文参考指南.pdf

    - **使用Spring Validator接口**:Spring提供了一套验证框架。 - **将代码解析为错误消息**:如何配置错误消息。 - **bean操作和BeanWrapper**:提供了对Bean的操作支持。 - **Spring类型转换**:Spring支持多种...

    客户端验证框架JSValidation(demo+源码+配置和使用说明)

    JSValidation致力于改善这一过程。它将常见的校验(目前支持13种)封装起来,并创造性的采用xml来存贮表单验证信息,使得表单的验证成为整个项目中最不重要的环节,开发者只需要定义几个xml标记,就可以创建出复杂的...

    SpringBoot 使用hibernate validator校验

    SpringBoot 使用 Hibernate Validator 校验 Hibernate Validator 是 Java 中的一个验证框架,提供了许多有用的 注解来验证对象的属性。SpringBoot 项目中可以使用 Hibernate Validator 来实现数据验证。本文将详细...

    Struts Hibernate Spring 集成开发宝典 validator

    《Struts Hibernate Spring 集成开发宝典》是一本深度探讨企业级Java应用开发的著作,重点关注了三个核心框架的整合使用:Struts、Hibernate和Spring。这三大框架是Java Web开发中的重要组成部分,各自在不同的层面...

    spring-validator-boot

    "Spring Validator Boot" 是一个基于Java的项目,它利用了Spring框架和Bean Validation(JSR-303/JSR-349)规范来提供数据验证功能,特别是在Spring Boot应用中。这个项目的目的是简化在Spring Boot应用中实现数据...

    Spring3.0 + springmodules 实现validator

    在本文中,我们将深入探讨如何使用Spring 3.0与Springmodules进行无侵入式的Validator实现,重点关注基于注解的验证方法。同时,我们也会提到正则表达式在验证过程中的应用,以及如何将这个Java Web工程部署到Web...

    spring-ws-reference-1.5.9

    - **使用 Spring Validator**:在 Marshalling 端点中集成 Spring 验证器。 - **@Endpoint 注解**:标记端点类的注解。 ##### 5.5 端点映射 描述了如何将消息路由到正确的端点。 - **...

    Spring mvc validator 需要的校验jar包

    spring mvc校验框架所需的几个jar包hibernate-validator-6.0.7.Final.jar、logging-3.1.0.CR2.jar、validator-api-2.0.2.jar

Global site tag (gtag.js) - Google Analytics