JSR-303是一個資料驗證的規範,而Spring也沒有對這一規範進行實作,那麼當我們在SpringMVC中需要使用到JSR-303的時候就需要我們提供一個對JSR-303規範的實作,Hibernate Validator是實作了這一規範的,這裡我将以它作為JSR-303的實作來講解SpringMVC對JSR-303的支援。
JSR-303的校驗是基于注解的,它内部已經定義好了一系列的限制注解,我們隻需要把這些注解标記在需要驗證的實體類的屬性上或是其對應的get方法上。
JSR-303原生支援的限制有如下幾種:
@Null | 限制隻能為null |
@NotNull | 限制必須不為null |
@AssertFalse | 限制必須為false |
@AssertTrue | 限制必須為true |
@DecimalMax(value) | 限制必須為一個不大于指定值的數字 |
@DecimalMin(value) | 限制必須為一個不小于指定值的數字 |
@Digits(integer,fraction) | 限制必須為一個小數,且整數部分的位數不能超過integer,小數部分的位數不能超過fraction |
@Future | 限制必須是一個将來的日期 |
@Max(value) | 限制必須為一個不大于指定值的數字 |
@Min(value) | 限制必須為一個不小于指定值的數字 |
@Past | 限制必須是一個過去的日期 |
@Pattern(value) | 限制必須符合指定的正規表達式 |
@Size(max,min) | 限制字元長度必須在min到max之間 |