不能相信前端傳過來的任何數據
一定不能相信前端傳過來的任何數據
絕對不能相信前端傳過來的任何數據 @JsonFormat 時間必須是指定的格式(這里是接收參數格式,不是取數據來格式化)
@Null 必須為空 @NOtNUll 不能為空 @AssertTrue 布爾值必須為 true @AssertFalse 布爾值必須為 false @Past 時間是過去的時間(比如現在是2018-08-12 15:43:23,如果傳過來的值在此時間之后就報錯) @Feauture 時間是未來時間 @NotBlank 字符串不能是 null,且長度大於 0 @Email 字符串必須是郵箱 @NotEmpty 字符串必須非空 @Min(10) 數字必須大於等於10 @Max(20) 數字必須小於等於20 @Size(min=1, max=10) 元素范圍是 1-10(可以是字符串,數組,集合,Map 等) @Length(min=1, max=10) 字符串長度范圍在 1-10 之間 @Pattern(regexp = "0[0123]") 只能是 00或01或02或03
@Valid 級聯注解(如果當前屬性是一個 JavaBean ,這個 bean 里面的字段也要驗證)
注意:在 controller 層的方法接收參數時,使用 @Valid 注解表示當前方法的參數需要驗證
每個驗證注解可以加 message 屬性,當驗證不通過時提示給用戶
示例:
// 驗證郵箱
@Email(message="輸入的郵箱格式不正確") private String concatEmail; // images 這個 List 不能為 null,但是每個 Image 就不好說了,具體看 @Valid 級聯驗證規則 @NotNull private List<@Valid Image> images;
// list 長度至少為1,不可為 null,每個元素(String)不可為 null ,最短長度10 @NotNull @Size(min=1) private List<@Size(min=10) @NotNull String> list;