快速校验实体类时,使用@Valid,@Validated,@NotNull注解无效

校验实体类参数内容不能为空时使用注解校验无效

校验实体类大部分人使用的方法肯定都是controller层里面拿出来判断是否为空,其实可以直接通过实体类中的注释@NotNull直接校验,如图
快速校验实体类时,使用@Valid,@Validated,@NotNull注解无效_第1张图片
但经过我的实验,不知道什么原因,在我的项目中并没有起到作用,解决如下

1、更换方法入参类型

在网上看到@Valid是可以用在方法、构造函数、方法参数和成员属性(字段)上,而我一开始controller层中使用的是json接收的,转换成实体类后再校验的,如图
在这里插入图片描述
修改如下:在controller接收数据时直接以对象接收,在入口中直接以注解进行校验在这里插入图片描述

2、错误内容过多

此时对象字段校验生效,但是出错时返回的是很凌乱的内容,如图:
快速校验实体类时,使用@Valid,@Validated,@NotNull注解无效_第2张图片

3、使用对象接收错误内容,按自己要求输出

上面的图片可看出,返回内容中defaultMessage就是想要输出的内容,所以在方法中添加一个接收错误信息的类型为BindingResult的对象,如果对象有数据,则输出错误数据,如图:
快速校验实体类时,使用@Valid,@Validated,@NotNull注解无效_第3张图片
另一层面的实现了实体类的参数校验,大家如果有更好的方法可以留言交流

你可能感兴趣的:(@NotNull,@Valid,@Validated,注解无效)