SpringBoot 表单验证

    xiaoxiao2021-04-19  179

    SpringBoot 表单验证

    表单验证,就是对用户的输入数据进行有效性检查,那么SpringBoot是如何来做的呢?

    还是以添加学生为例来进行说明,其中,Student实体类的代码如下:

    @Entity public class Student { @Id @GeneratedValue private Integer id; private String name; private Integer age; public Student() { } //getter、setter方法 }

    在前面博文SpringBoot 相关的数据库操作中,我们知道,如果不进行验证,则存储一个学生信息到数据库中的代码如下:

    /** * 添加一个学生的信息到数据库中 * */ @PostMapping(value="/add") public Student studentAdd(Student student){ return studentRepository.save(student); }

    这样就会导致age如果为负数也可以添加到数据库中,因此,确实需要进行验证。

    作为例子,现在需要做这样一件事:即只有年满18岁的学生才能被添加进来。其他关于Student类的name属性是否为空以及长度呀等等验证方法类似。

    具体验证步骤如下

    1、在Student类中使用注解@Min对该类的相应属性age上进行限制。

    @Min(value = 18,message = "未满18岁") private Integer age;

    2、使用@Valid注解验证数据,并且使用BindingResult获取结果。具体修改StudentController中相应方法studentAdd中的代码如下:

    /** * 添加一个学生的信息到数据库中,在添加之前进行验证是否符合要求 * */ @PostMapping(value="/add") public Student studentAdd(@Valid Student student, BindingResult bindingResult){ if (bindingResult.hasErrors()){ System.out.println(bindingResult.getFieldError().getDefaultMessage()); return null; } return studentRepository.save(student); }

    以上就完成了对学生信息的验证,避免出现其他情况。

    除了@Min注解之外,还有很多注解用于对属性做相应的限制以配合验证。

    例如:

    @Null 验证对象是否为空

    @NotNull 验证对象是否为非空

    @AssertTrue 验证 boolean 对象是否为 true

    @AssertFalse 验证 boolean 对象是否为 false

    转载请注明原文地址: https://ju.6miu.com/read-676209.html

    最新回复(0)