Java 实体类中对字段添加非空注解判断传入的参数是否为空

pom文件添加依赖

  <dependency>
      <groupId>org.hibernate.validator</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>6.0.17.Final</version>
  </dependency>

1. 创建实体类并且添加非空注解

在此说明 lombook的 @Data有bug,有的时候会出现无法获取到值,值为null的情况,最好使用set,get方法和tostring重写
@Slf4j
@Data
public class Test {

    @NotEmpty(message = "名称不能为空!")
    private String name;
    @NotEmpty(message = "性别不能为空!")
    private String sex;
    @NotEmpty(message = "地址不能为空!")
    private String address;
    //注意这里如果字段的类型为 int 类型,该注解会失效,因为int类型的默认值为0,不传参数就使用默认值,为避免出现类似情况,可以使用包装类Integer ,他们的区别可以查一下,在这里不做详解
    @NotNull(message = "年龄不能为空!")
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public static Logger getLog() {
        return log;
    }

    @Override
    public String toString() {
        return "test{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                ", age=" + age +
                '}';
    }
}

控制器

在方法的参数中需要使用注解 @Valid 与实体类中的为空注解结合使用
@Slf4j
@RestController
@RequestMapping("/api/test")
public class TestController {

    @PostMapping("/add")
    public void  add(@RequestBody @Valid Test test){
        log.info("====新增的数据===="+test);

    }
}

测试,这里使用的测试工具是RunAPI

通过JSON传参
正常返回结果
{
"name":"测试",
"age":"22",
"address":"444444",
"sex":"男"
}

缺少age传值

{
"name":"测试",
"address":"444444",
"sex":"男"
}
返回结果
{6 items
"timestamp":"2022-04-01T03:28:45.102+0000"
"status":400
"error":"Bad Request"
"errors":[1 item
		0:{8 items
		"codes":[...]4 items
		"arguments":[...]1 item
		"defaultMessage":"年龄不能为空!"
		"objectName":"test"
		"field":"age"
		"rejectedValue":NULL
		"bindingFailure":false
		"code":"NotNull"
		}
]
"message":"Validation failed for object='test'. Error count: 1"
"path":"/api/test/add"
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值