javascript
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
| @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
| 被注釋的元素必須是電子郵箱地址 | |
| @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
總結
以上是生活随笔為你收集整理的JSR 303 - Bean Validation与Hibernate Validation 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卓有成效的管理者--总结
- 下一篇: 将文件内含有的特殊字符还原