一、前言

为啥子要搞这个表单验证呢?答案简单而现实,举个栗子,你辛辛苦苦的写了一个录入个人信息的功能,比如年龄这个位置,用户就没看到一下子写了个性别男,一提交,直接报错了,是不是很尴尬呢,

作为一个测试的同学,我很想说的是,真的是用户的行为是深不可测的,所以还是加吧。

二、模拟场景

记得我还是在上学那会,未满十八岁时不允许去网吧上网的,直到上大学,得用身份证,才让去,无奈呀,寝室的网太卡了~~~~~

那么现在我们就模拟年龄为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返回空,结果如下:

我们再来看下控制台是否有提示:

到此,关于表单的验证,介绍完毕,有兴趣的同学可以自行尝试。

spring boot中表单验证的使用的更多相关文章

  1. Spring Boot 表单验证、AOP统一处理请求日志、单元测试

    一.使用@Valid表单验证 于实体类中添加@Min等注解 @Entity public class Girl { @Id @GeneratedValue private Integer id; pr ...

  2. spring boot 表单验证

    1 设置某个字段的取值范围 1.1 取值范围验证:@Min,@Max ① 实例类的属性添加注解@Min ② Controller中传入参数使用@Valid注解 1.2 不能为空验证:@NotNull ...

  3. Spring进行表单验证

    转自:https://www.tianmaying.com/tutorial/spring-form-validation 开发环境 IDE+Java环境(JDK 1.7或以上版本) Maven 3. ...

  4. HTML5中表单验证的8种方法(转)

    在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义.就其核心而言,表单验证是一套系统,它为终端用户检测无效的控件数据并标记这些错误.换言之,表单验证就是在表单提交服务器前对其进行一系列的检查并 ...

  5. HTML5中表单验证的8种方法

    HTML5中表单验证的8种方法 2012-4-21 11:00| 发布者: benben| 查看: 2765| 评论: 0 摘要: 前一篇,我们介绍了HTML5中新的表单特性和函数, 今天就继续来谈谈 ...

  6. Kotlin + Spring Boot 请求参数验证

    编写 Web 应用程序的时候,经常要做的事就是要对前端传回的数据进行简单的验证,比如是否非空.字符长度是否满足要求,邮箱格式是否正确等等.在 Spring Boot 中,可以使用 Bean Valid ...

  7. miniui中表单验证规则总结

    页面链接: http://www.miniui.com/demo/#src=form/rules.html 页面效果图: 页面代码: <!DOCTYPE html PUBLIC "-/ ...

  8. Spring Boot (31) 数据验证

    曾经参数的验证是这样的: public String test(User user){ if(user == null){ throw new NullPointerException("u ...

  9. spring boot+jwt 权限验证

    上周看了一下jwt以前公司的开发都是使用session共享的方法.现在主流的两种方式一种是把登录信息保存在服务器,另一种则是把信息保存在客户端.在使用session 存储的时候会遇到很多的问题,随着项 ...

随机推荐

  1. 关于 KiCad 画圆弧走线

    关于 KiCad 画圆弧走线 有很多关于 关于 KiCad 画圆弧走线的帖子. 最新进展是 V6 在开发中. 但是因为关于 DRC 问题,开发好像有难度. https://bugs.launchpad ...

  2. ROS报错:IOError:[Errno 13]permission denied: /home/neousys/.ros/roscore-11311.pid"

    在安装ROS后启动ROS,输入:roscore 时报错: 这个问题是由于该路径下ros文件权限造成的. 输入以下命令修改权限: sudo chmod -R ~/.ros/ 修改完成后再次输入rosco ...

  3. @loj - 6353@「CodePlus 2018 4 月赛」组合数问题 2

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 请你找到 k 个不同的组合数,使得对于其中任何一个组合数 \(C ...

  4. @codeforces - 1106F@ Lunar New Year and a Recursive Sequence

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 定义递推数列 f: (1)f[1] = f[2] = ... f ...

  5. UIImageView xib里面拉伸图片技巧

    拉伸图片的时候代码里和xib里面的图片名字去掉@2x,但是原始图片文件得要xxx@2x.png The X and Y values seem to be the positions for the ...

  6. 上传图片保存到MySql数据库并显示--经验证有效

    以下方法仅供参考,只是介绍下这一种方法而已.欢迎指正!! 前台(image.html):  1<html> 2<head> 3<title>上传图片</tit ...

  7. Android 自定义ProgressDialog

    Android本身已经提供了ProgressDialog进度等待框,使用该Dialog,我们可以为用户提供更好的体验:在网络请求时,弹出此框等待网络数据. 不过,既然是为了提高用户体验,我们肯定希望该 ...

  8. colab找不到模块 no name

    https://www.jianshu.com/p/2cf00bb9db34?utm_source=oschina-app 穷学生学习神经网络一定体会过“等待”的痛苦... 循环一次epoch急死人, ...

  9. rsa加密(非对称加密)

    rsa加密 是非对称加密 需要公钥 与 私钥 这个公钥私钥的具体值需要与后端协商定下 rsa js代码如下 代码太多不插入了 html代码如下 <!DOCTYPE html> <ht ...

  10. codeforces 615A

    题意:给你m个编号为1到m的灯泡:然后n行中每一行的第一个数给出打开灯泡的个数xi 然后是yij是每个灯泡的编号: 题目中有一句话. 我愣是没看,因为我英语真的是一窍不通,看了也白看,直接看数据做的, ...