關於參數VO里包含VO的嵌套參數校驗(@Valided和@Valid的用法)


一般我們會用Vo來接收頁面傳遞過來的參數,並校驗,在Controller層的Vo上添加@Valided注解,然后就會在此Vo里校驗

項目中我發現,由於Vo里嵌套了Vo,參數校驗又在最里層,最后導致校驗不生效

1. Contoller層 

 2. Vo里面:

左邊的情況不校驗,修改為右邊的情況:為外層Vo加@Valid注解

 3. 里層Vo

左邊的校驗在不加@Valid注解前不生效,加了@Valid注解后類型不匹配,修改為右邊的情況

關於類型:

@NotBlank用於String類

@NotNull用於基本類

@NotEmpty用於集合類

如果類型加錯,校驗就會不准確或者報錯

  結論:要嵌套驗證,需要@Valided和@Valid配合使用

@Validated:可以用在類型、方法和方法參數上。但是不能用在成員屬性(字段)上

@Valid:可以用在方法、構造函數、方法參數和成員屬性(字段)上

同樣的結論此鏈接文章也有講到,講得比較詳細

https://blog.csdn.net/qq_27680317/article/details/79970590


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM