spring註解 @Valid 的作用說明
spring註解 @Valid 的作用
在controller中的方法上面寫有註解@Valid UserRequest 的作用。
備註:這裡一個@Valid的參數後必須緊挨著一個BindingResult 參數,否則spring會在校驗不通過時直接拋出異常,BindingResult是springmvc的一個驗證框架。
是對該UserRequest 實體進行校驗,
在userRequest類中的屬性上使用spring的註解
spring註解 @Valid 作用范圍
@Valid隻作用於當前類的基本類型,不能作用引用類型
建立兩個基本類
@Data @AllArgsConstructor @NoArgsConstructor public class NewUser { @NotEmpty private String name; @NotEmpty private String password; }
@Data public class UserRequest { @NotEmpty private String groupName; private List<NewUser> users; }
建立一個請求
@RequestMapping(path = {"/ValidTest"}) public String Valid(@Valid @RequestBody UserRequest userRequest) { System.out.println(userRequest); return "valid test"; }
實驗測試
可以看到類NewUser裡面的@NotEmpty並未生效。
修改UserRequest(對users加入@Valid)
@Data public class UserRequest { @NotEmpty private String groupName; @Valid private List<NewUser> users; }
再次發送請求
可以看到Valid生效,此時加上name的值
綜上,@Valid 作用的類中有其他類時,需要逐層加上@Valid
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Spring 使用Validation 驗證框架的問題詳解
- 關於@Valid註解大全以及用法規范
- 關於BindingResult的使用總結及註意事項
- @Valid 校驗無效,BindingResult未獲得錯誤的解決
- springmvc項目使用@Valid+BindingResult遇到的問題