• 新建一个entity,添加表单验证注解

    @Entity
    @Table(name="t_student")
    public class Student {
        @Id
        @GeneratedValue
        private Integer id;
    
        @NotEmpty(message="姓名不能为空!") //限制不为null且不为空,否则返回提示信息到页面
        @Column(length=50)
        private String name;
    
        @NotNull(message="年龄不能为空!")
        @Min(value = 18,message = "年龄必须大于18岁!")
        private Integer age;
    
        setter、getter
    }
    
  • controller层添加进行表单验证的注解,并处理验证不通过信息

    @RequestMapping("/add")
    public String add(@Valid Student student, BindingResult bingdingResult){ //@Valid:进行验证;BindingResult:验证返回的结果,不加的话会在验证不通过时抛出异常
        if(bingdingResult.hasErrors()){ //一开始拦截器拦截请求时就进行了验证,假如不通过的话
        return bingdingResult.getFieldError().getDefaultMessage(); //返回错误信息,比如姓名没填则返回“姓名不能为空!”
        }else {
            studentService.add(student);
            return "添加成功";
        }
    }
    
  • 限制条件清单
    • @Null 限制只能为null
    • @NotNull 限制必须不为null
    • @AssertFalse 限制必须为false
    • @AssertTrue 限制必须为true
    • @DecimalMax(value) 限制必须为一个不大于指定值的数字
    • @DecimalMin(value) 限制必须为一个不小于指定值的数字
    • @Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
    • @Future 限制必须是一个将来的日期
    • @Max(value) 限制必须为一个不大于指定值的数字
    • @Min(value) 限制必须为一个不小于指定值的数字
    • @Past 限制必须是一个过去的日期
    • @Pattern(value) 限制必须符合指定的正则表达式
    • @Size(max,min) 限制字符长度必须在min到max之间
    • @Past 验证注解的元素值(日期类型)比当前时间早
    • @NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
    • @NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
    • @Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
  • 代码实例:D:/SpringBootJpa/entity/Student、StudentController