使用方法
-
創建實體bean
@Data public class OprStaDelayFeeUpdParam extends BaseParam { @NotNull private Integer staDelayFeePkId; @NotBlank @Length(max = 50) private String feeName; @NotNull private Integer hasTimeType; @DecimalMin("0") private BigDecimal slotDelayPrice; @NotNull private Integer freeMinutes; @Valid private List<OprStaDelayFeeDetailParam> details; }
-
創建Controller
ResponseResult<OprStaDelayFeeVo> updateDelayFeeInfo(@RequestBody @Validated OprStaDelayFeeUpdParam param);
ResponseResult<OprStaDelayFeeVo> updateDelayFeeInfo(@RequestBody @Validated OprStaDelayFeeUpdParam param,BindingResult result);
當請求參數不滿足註解定義規範時,將直接返回錯誤提示;推薦使用第一種將錯誤信息統一返回,不用每個接口都傳入
BindingResult
註解介紹
註解 | 說明 |
---|---|
@Null | 限制只能爲null |
@NotNull | 限制必須不爲nul |
@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之間 |
@Past | 驗證註解的元素值(日期類型)比當前時間早 |
@NotEmpty | 驗證註解的元素值不爲null且不爲空(字符串長度不爲0、集合大小不爲0) |
@NotBlank | 驗證註解的元素值不爲空(不爲null、去除首位空格後長度爲0),只應用於字符串且在比較時會去除字符串的空格 |
驗證註解的元素值是Email,也可以通過正則表達式和flag指定自定義的email格式 |
@validated和@valiad的不同點
- @validated 支持分組
- 註解位置: @validated可以用在方法參數,方法上,不能用在屬性上;@valiad可以直接用於屬性上
- @valiad 支持嵌套校驗
@validated使用注意點
- @validated 和@valid都可以用在controller層的參數前面,但只能再controller層生效
- @validated 如果要開啓方法驗證;註解應該打在類上,而不是參數上
- 註解也可以用於方法返回值的校驗
- 不支持嵌套檢驗,如果要進行嵌套檢驗使用@valid對實體屬性進行修飾