一、前言
為啥子要搞這個表單驗證呢?答案簡單而現實,舉個栗子,你辛辛苦苦的寫了一個錄入個人信息的功能,比如年齡這個位置,用戶就沒看到一下子寫了個性別男,一提交,直接報錯了,是不是很尷尬呢,
作為一個測試的同學,我很想說的是,真的是用戶的行為是深不可測的,所以還是加吧。
二、模擬場景
記得我還是在上學那會,未滿十八歲時不允許去網吧上網的,直到上大學,得用身份證,才讓去,無奈呀,寢室的網太卡了~~~~~
那么現在我們就模擬年齡為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返回空,結果如下:
我們再來看下控制台是否有提示:
到此,關於表單的驗證,介紹完畢,有興趣的同學可以自行嘗試。