天天看點

SpringBoot(五)_表單驗證

SpringBoot(五)_表單驗證

參數校驗在我們日常開發中非常常見,最基本的校驗有判斷屬性是否為空、長度是否符合要求等,在傳統的開發模式中需要寫一堆的 if else 來處理這些邏輯,很繁瑣,效率也低。使用 @Valid + BindingResult 就可以優雅地解決這些問題

(1)首先在實體類中增加注解

@Entity
public class Girl  {


    @Id
    @GeneratedValue
    private int id;

    @NotEmpty(message = "姓名不能為空")
    private String name;

    @Min(value = 18,message = "未成年禁止入内")
    private int age;

    public Girl() {
    }
           

(2) 在controller 中增加@Valid + BindingResult

@PostMapping("/girls")
    public Girl girlAdd(@Valid Girl girl, BindingResult bindingResult){
        if(bindingResult.hasErrors()){
 
            System.out.println(bindingResult.getFieldError().getDefaultMessage());
            return  null;
        }
        return girlRepository.save(girl);
    }           

(3) 測試結果

未成年禁止入内           
結果顯示均已經觸發了校驗規則,傳回了錯誤資訊,在實際使用過程中可以對錯誤資訊進行包裝,最後傳回到前端進行展示。

學習不是要麼0分,要麼100分的。80分是收獲;60分是收獲;20分也是收獲。有收獲最重要。但是因為着眼于自己的不完美,最終放棄了,那就是徹底的0分了。