springboot注解@NotNull,@NotBlank,@Valid自動判定空值


一、前言

       搭建springboot項目,我們都是采用的Restful接口,那么問題來了,當前端調用接口或者是其他項目調用時,我們不能單一靠調用方來控制參數的准確性,自己也要對一些非空的值進行判定。

 

二、方案

      按照我們以往的做法,都是對request中的參數一個一個進行非空判定。

     Model:      

 1 public class Order {
 2 
 3 
 4     private Long userID;
 5 
 6     
 7     private Long addressID;
 8 
 9     private String comment;
10 
11 }

   

    Controller:

      

 1 @PostMapping("/createOrders")
 2     public String createOrders(@RequestBody Order dto) {
 3         if(dto.getUserID==null)
 4             return "userID不能為空";
 5         if(dto.getAddressID==null)
 6             return "addressID不能為空";
 7         if(dto.getComment==null)
 8             return "comment不能為空";
 9         return "sucess";
10     }

 

這種做法首先是可取的,能達到我們的要求,但是這樣如果model字段過多,判定的就很多,相對維護起來就不是那么方便,其次增加controller層的負擔,既然我們來到spring4的時代,就應該適應使用注解的趨勢,下面是使用注解后的比變化。

  Model:

public class Order {
  
      @NotNull(message = "用戶ID不能為空")
      private Long userID;
  
      @NotNull(message = "收貨人地址id不能為空")
      private Long addressID;
  
      @NotBlank(message = "備注不為空")
      private String comment;
 
 }

 

 Controller:

 @PostMapping("/createOrders")
    public String createOrders(@RequestBody @Valid Order dto, BindingResult results) { 
         if (results.hasErrors()) 
                return results.getFieldError().getDefaultMessage();
          return "success";
    }

 

這樣我們就只需要在model字段上加上非空驗證和相應提示語就好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM