SpringBoot 表单验证

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值