@Validated注解无效,以及嵌套对象属性的@NotBlank无效问题

本文介绍了如何使用@Validated注解对表单字段进行验证,包括@NotBlank、@NotNull和@NotEmpty的区别,并解决了内层对象无法验证的问题。

最近在做的公司项目是一个表单系统,刚好要用到@Validated注解来对表单字段进行验证。第一次使用遇到了一些坑,问了同事之后,总算是掌握了。


步骤

首先,在dto实体你想要做验证的属性前,加上@NotBlank/NotNull/NotEmpty注解:
图

他们的区别如下:

@NotBlank:只用在String上,表示传进来的值不能为null,而且调用trim()后,长度必须大于0
@NotNull:不能为null,但可以为empty(分配了内存空间,但值为空)
@NotEmpty:不能为null,而且长度必须大于0

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

这里写图片描述

然后运行,给属性传递空值,发现没有任何反应;是因为没在接口方法的参数前加上@Valid注解,如下所示:

这里写图片描述

加上后再运行,传递空值,成功报错。
(同时,以上总结可以加在controller层进行验证,@valid同样加在方法参数前,@validated加在controller类名前图

这里写图片描述

同样能起效果)

内层对象无法验证

做到后面发现传递的对象里面还有一个对象,要对里面的对象进行验证,这时候是验证不到的
这里写图片描述

这里写图片描述

需要在里面对象前也加上总结@valid,这样,无论嵌套多少,都可以验证

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

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值