@Validated注解無效,以及嵌套對象屬性的@NotBlank無效問題


最近在做的公司項目是一個表單系統,剛好要用到@Validated注解來對表單字段進行驗證。第一次使用遇到了一些坑,問了同事之后,總算是掌握了。


首先,在dto實體你想要做驗證的屬性前,加上@NotBlank/NotNull/NotEmpty注解:
圖

他們的區別如下:

@NotBlank:只用在String上,表示傳進來的值不能為null,而且調用trim()后,長度必須大於0
@NotNull:不能為null,但可以為empty(分配了內存空間,但值為空)
@NotEmpty:不能為null,而且長度必須大於0

然后在service層接口前添加注解@Validated

這里寫圖片描述

然后運行,給屬性傳遞空值,發現沒有任何反應;是因為沒在接口方法的參數前加上@Valid注解,如下所示:

這里寫圖片描述

加上后再運行,傳遞空值,成功報錯。
(同時,以上總結可以加在controller層進行驗證,@valid同樣加在方法參數前經典電影,@validated加在controller類名前圖

這里寫圖片描述

同樣能起效果)

做到后面發現傳遞的對象里面還有一個對象,要對里面的對象進行驗證,這時候是驗證不到的
這里寫圖片描述

這里寫圖片描述

需要在里面對象前也加上總結@valid,這樣,無論嵌套多少,都可以驗證

這里寫圖片描述
(對於對象泛型,也能驗證成功)


免責聲明!

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



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