zoukankan      html  css  js  c++  java
  • Hibernate Validator基本用法

    一、准备工作

    Spring文档:https://docs.spring.io/spring/docs/5.0.1.RELEASE/
    JSR规范:http://beanvalidation.org/1.1/spec/
    Hibernate Validator文档:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/
    Maven依赖:
    https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator
    https://mvnrepository.com/artifact/org.glassfish/javax.el

    <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.0.2.Final</version>
    </dependency>
    
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.el</artifactId>
        <version>3.0.0</version>
    </dependency>

    二、验证类

    xml配置:

    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>

    注解配置:

    @Bean
    public LocalValidatorFactoryBean getValidator() {
        return new LocalValidatorFactoryBean();
    }

    三、Hibernate Validator Constraint 注解

    Bean Validation 中内置的 constraint:

    @Null   被注释的元素必须为 null    
    @NotNull    被注释的元素必须不为 null    
    @AssertTrue     被注释的元素必须为 true    
    @AssertFalse    被注释的元素必须为 false    
    @Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
    @Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
    @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
    @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
    @Size(max=, min=)   被注释的元素的大小必须在指定的范围内    
    @Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内    
    @Past   被注释的元素必须是一个过去的日期    
    @Future     被注释的元素必须是一个将来的日期    
    @Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式    

    Hibernate Validator 附加的 constraint

    @NotBlank(message =)   验证字符串非null,且长度必须大于0    
    @Email  被注释的元素必须是电子邮箱地址    
    @Length(min=,max=)  被注释的字符串的大小必须在指定的范围内    
    @NotEmpty   被注释的字符串的必须非空    
    @Range(min=,max=,message=)  被注释的元素必须在合适的范围内 

    四、验证

    @Autowired
    LocalValidatorFactoryBean localValidatorFactoryBean;

    DataBinder验证:

    public void checkUser() {
        UserEntity userEntity = new UserEntity("txls",919,001);
    
        DataBinder dataBinder = new DataBinder(userEntity);
        dataBinder.setValidator(this.localValidatorFactoryBean);
        dataBinder.validate();
    
        BindingResult bindingResult = dataBinder.getBindingResult();
        if(bindingResult.hasErrors()) {
            List<ObjectError> list =  bindingResult.getAllErrors();
            for(ObjectError objectError : list)
                System.out.println(objectError.getCode() + "_" + objectError.getDefaultMessage());
        } else {
            System.out.println(userEntity);
        }
    }

    localValidatorFactoryBean验证:

    public void checkUser() {
        Set<ConstraintViolation<UserEntity>> constraintViolationSet =   this.localValidatorFactoryBean.validate(userEntity);
            if(constraintViolationSet.size()>0) {
                for(ConstraintViolation<UserEntity> constraintViolation : constraintViolationSet)
                    System.out.println(constraintViolation.getMessage());
            } else {
                System.out.println(userEntity);
            }
    }
  • 相关阅读:
    Install and Configure OSSEC on Debian 7&8
    手动替换WORDPRESS的GOOGLE字体等加速【非插件】
    LDAP常用命令解析
    Install guide for OpenLDAP and GOsa 2 on Ubuntu & Debian
    Linux 转发 email Redirect local emails to a remote email account
    Ubuntu,忘记了root密码,怎么重置?
    LDAP 原理图解
    CAS实现SSO单点登录原理
    cacti 安装与 与不能显示图像故障解决方案
    LDAP概念和原理
  • 原文地址:https://www.cnblogs.com/tangxuliang/p/9078946.html
Copyright © 2011-2022 走看看