JSR 303 - Bean Validation與Hibernate Validation 介紹

一、介紹


    在應用程序中,通過使用 Bean Validation 或是你自己定義的 constraint,例如 @NotNull@Max@ZipCode, 就可以確保數據模型(JavaBean)的正確性。constraint 可以附加到字段,getter 方法,類或者接口上面。對於一些特定的需求,用戶可以很容易的開發定製化的 constraint。Bean Validation 是一個運行時的數據驗證框架,在驗證之後驗證的錯誤信息會被馬上返回。

    下載 JSR 303 – Bean Validation 規範 http://jcp.org/en/jsr/detail?id=303

    Hibernate Validator 是 Bean Validation 的參考實現 . Hibernate Validator 提供了 JSR 303 規範中所有內置 constraint 的實現,除此之外還有一些附加的 constraint。如果想了解更多有關 Hibernate Validator 的信息,請查看 http://www.hibernate.org/subprojects/validator.html


Bean Validation 中的 constraint

表 1. Bean Validation 中內置的 constraint
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(value)被註釋的元素必須符合指定的正則表達式
表 2. Hibernate Validator 附加的 constraint
Constraint詳細信息
@Email被註釋的元素必須是電子郵箱地址
@Length被註釋的字符串的大小必須在指定的範圍內
@NotEmpty被註釋的字符串的必須非空
@Range被註釋的元素必須在合適的範圍內

——摘自http://www.ibm.com/developerworks/cn/java/j-lo-jsr303/








二、No validator錯誤及解決方法

    javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Integer

    使用hibernate validator出現上面的錯誤, 需要 注意

        @NotNull 和 @NotEmpty  和@NotBlank 區別

        @NotEmpty 用在集合類上面
        @NotBlank 用在String上面
        @NotNull    用在基本類型上

    當@NotEmpty用在Integer類型上時將會出現上面的錯誤,換成@NotNull問題解決。

    ——摘自http://blog.csdn.net/dracotianlong/article/details/23181729



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章