@Valid和@Validated不生效

今天碰到了校验没有生效的问题,百思不得其解,网上也搜不到,因为网上的基本都是说导包不对、依赖没有添加之类的。我是因为曾经的项目都是对的,直接复制过来的,就想不通为什么不行。

以下是我本次解决问题的思路。

第一,怀疑导包和依赖不对,导致项目的校验组件没有生效

但实际都添加了,和其他有效的项目反复对比,没有出入,所以这块儿没有问题。

第二步,发现本项目中另外有个controller的校验组件是生效的,怀疑是什么玄学问题,重新建了controller,依然无效,然后在新的controller中调用的生效的参数dto,校验生效了。

反复对比后发现,生效的参数dto也只有字符串类型的生效了,原未生效的参数dto中也只有整型的没有生效,没有生效校验的controller正好只有整型的校验。于是接下来排查就有方向了

我用到了@Min这个注解,但是我属性类是用包装类定义的,此时参数未传入,因此参数为null,无法进行最小值的判断,所以校验失效。

改为基本数据类型int后,参数没有传也不会为null,而是为0,就可以进行min的判断了,Controller中@Valid的校验也生效了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值