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

最近在作的公司項目是一個表單系統,恰好要用到@Validated註解來對錶單字段進行驗證。第一次使用遇到了一些坑,問了同事以後,總算是掌握了。html


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

他們的區別以下:htm

@NotBlank:只用在String上,表示傳進來的值不能爲null,並且調用trim()後,長度必須大於0
@NotNull:不能爲null,但能夠爲empty(分配了內存空間,但值爲空)
@NotEmpty:不能爲null,並且長度必須大於0對象

而後在service層接口前添加註解@Validated接口

這裏寫圖片描述

而後運行,給屬性傳遞空值,發現沒有任何反應;是由於沒在接口方法的參數前加上@Valid註解,以下所示:圖片

這裏寫圖片描述

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

這裏寫圖片描述

一樣能起效果)get

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

這裏寫圖片描述

須要在裏面對象前也加上總結@valid,這樣,不管嵌套多少,均可以驗證io

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

相關文章
相關標籤/搜索