spring boot中表单验证的使用
一、前言
为啥子要搞这个表单验证呢?答案简单而现实,举个栗子,你辛辛苦苦的写了一个录入个人信息的功能,比如年龄这个位置,用户就没看到一下子写了个性别男,一提交,直接报错了,是不是很尴尬呢,
作为一个测试的同学,我很想说的是,真的是用户的行为是深不可测的,所以还是加吧。
二、模拟场景
记得我还是在上学那会,未满十八岁时不允许去网吧上网的,直到上大学,得用身份证,才让去,无奈呀,寝室的网太卡了~~~~~
那么现在我们就模拟年龄为18岁以上的同学,才能去网吧上网。下面我们将结合实例来说明表单的验证使用。
1、修改新增学生接口
将传字段值,改为传Student对象,示例代码如下:
/** * 新增一个学生 * * @return */ @PostMapping("/studentAdd") public Student sudentAdd(@Valid Student student, BindingResult bindingResult) { if(bindingResult.hasFieldErrors()){ //输出错误信息 System.out.println(bindingResult.getFieldError().getDefaultMessage()); return null; } student.setName(student.getName()); student.setAge(student.getAge()); student.setSex(student.getSex()); student.setEmail(student.getEmail()); //保存和更新都用该方法 return studentResponstory.save(student); }
2、在实体对象上添加限制
使用@MIN来限制输入最小值,具体示例代码如下:
package com.rongrong.springboot.demo.domain; import lombok.Data; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.validation.constraints.Min; /** * @author rongrong * @version 1.0 * @description: * @date 2019/12/30 21:24 */ @Entity @Data public class Student { //主键ID @Id //自增型 @GeneratedValue private Integer id; private String name; @Min(value = 18,message = "未满18岁,还没身份证,不能到网吧上网!") private Integer age; private String sex; private String email; public Student() { } }
3、启动服务
调用接口,增加一个大于18岁的学生,结果如下:
再来修改,修改年龄为2岁,再来调用接口,postman返回空,结果如下:
我们再来看下控制台是否有提示:
到此,关于表单的验证,介绍完毕,有兴趣的同学可以自行尝试。
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2019-01-02 Android调试adb devices找不到设备【转】
2018-01-02 idea项目左边栏只能看到文件看不到项目结构
2018-01-02 idea如何导入一个maven项目
2017-01-02 spring-aop学习【基于注解】