zoukankan      html  css  js  c++  java
  • Hibernate Validator注解大全

    hibernate Validator 是 Bean Validation 的参考实现 。Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。

    在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,方便快捷高效。

    1. Bean Validation 中内置的 constraint

               注解                                      作用

     

    @Valid被注释的元素是一个对象,需要检查此对象的所有字段值
    @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(value) 被注释的元素必须符合指定的正则表达式



    2. Hibernate Validator 附加的 constraint

    注解作用
    @Email 被注释的元素必须是电子邮箱地址
    @Length(min=, max=) 被注释的字符串的大小必须在指定的范围内
    @NotEmpty 被注释的字符串的必须非空
    @Range(min=, max=) 被注释的元素必须在合适的范围内
    @NotBlank被注释的字符串的必须非空
    @URL(protocol=,
    host=,    port=, 
    regexp=, flags=)
    被注释的字符串必须是一个有效的url
    @CreditCardNumber
    被注释的字符串必须通过Luhn校验算法,
    银行卡,信用卡等号码一般都用Luhn
    计算合法性
    @ScriptAssert
    (lang=, script=, alias=)
    要有Java Scripting API 即JSR 223 
    ("Scripting for the JavaTM Platform")的实现
    @SafeHtml
    (whitelistType=, 
    additionalTags=)
    classpath中要有jsoup包


    hibernate补充的注解中,最后3个不常用,可忽略。

     

    主要区分下@NotNull  @NotEmpty  @NotBlank 3个注解的区别:

    @NotNull           任何对象的value不能为null

    @NotEmpty       集合对象的元素不为0,即集合不为空,也可以用于字符串不为null

    @NotBlank        只能用于字符串不为null,并且字符串trim()以后length要大于0

    举个使用的例子:

    [java] view plain copy
     
      1. public class User {    
      2.         
      3.     @NotBlank    
      4.     private String name;    
      5.         
      6.     //年龄要大于18岁    
      7.     @Min(18)    
      8.     private int age;    
      9.     
      10.     @Email    
      11.     private String email;    
      12.         
      13.     //嵌套验证    
      14.     @Valid    
      15.     private Product products;    
      16.         
      17.     ... //省略getter,setter    
      18. }    
      19.     
      20. public class Product {    
      21.         
      22.     @NotBlank    
      23.     private String name;    
      24.         
      25.     //价格在10元-50元之间    
      26.     @Range(min=10,max=50)    
      27.     private int price;    
      28.         
      29.     ... //省略getter,setter    
      30. }    
  • 相关阅读:
    背水一战 Windows 10 (90)
    背水一战 Windows 10 (89)
    背水一战 Windows 10 (88)
    背水一战 Windows 10 (87)
    背水一战 Windows 10 (86)
    背水一战 Windows 10 (85)
    背水一战 Windows 10 (84)
    背水一战 Windows 10 (83)
    背水一战 Windows 10 (82)
    背水一战 Windows 10 (81)
  • 原文地址:https://www.cnblogs.com/exmyth/p/8663635.html
Copyright © 2011-2022 走看看