IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Java 实体类中对字段添加非空注解判断传入的参数是否为空 -> 正文阅读

[开发测试]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"
}

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:40:45  更:2022-04-04 12:41:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:46:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码