关于参数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
posted on 2021-10-30 10:41 rachelgarden 阅读(1222) 评论(0) 编辑 收藏 举报