@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

这里写图片描述
(对于对象泛型,也能验证成功)

相关文章
相关标签/搜索