关于参数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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM