前言:主要学习web的内容,这次主要学习表单验证
一、首先将我们之前写好的代码整理一下,如下图所示:
这样按类分好比较方便我们后续代码的编写。
这里我们做一个限制,未满18周岁的女生禁止进入我们的数据库!
首先找到GirlController中的添加女生的接口代码的地方:
/**
* 新增一个女生 POST方式
*/
@PostMapping(value = "/girls")
public Girl girlAdd(Girl girl){
girl.setCupSize(girl.getCupSize());
girl.setAge(girl.getAge());
return girlRepository.save(girl);
}
这里我们不再是分别传参,而是定义一个Girl实体对象,然后调用她的属性参数来传参。
我们的目的是禁止年龄小于18岁的女生进入数据库,所以我们在实体Girl中添加一个注解限制如下:
@Min(value = 18,message = "未成年禁止入内!")
private Integer age;
意思是最小年龄限制是18岁,如果不符合会报未成年禁止入内的错!
然后在GirlController里面添加女生的接口部分这样改正:
/**
* 新增一个女生 POST方式
*/
@PostMapping(value = "/girls")
public Girl girlAdd(@Valid Girl girl, BindingResult bindingResult){
if (bindingResult.hasErrors()){
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
}
girl.setCupSize(girl.getCupSize());
girl.setAge(girl.getAge());
return girlRepository.save(girl);
}
可以看到,我们在Girl实体前面加了一个@Valid验证,并且返回一个BindingResult对象,如果对象有错误,则说明不符合添加条件,return一下停止程序进行并且打印错误。下面我们运行一下程序进行测试!!!
这里我们添加一个13岁的女生,发现body部分并没有反应,然后我们进如程序控制台查看一下:
说明我们的代码没有问题,已经拦截了小于18岁的女生!!!
也说明我们的表单验证功能已经成功!