簡體   English   中英

向@Valid發出請求

[英]Making request to @Valid

我正在開發spring-boot應用程序,我需要在檢查其他信息之前驗證用戶信息。 這是一個片段:

@RequestMapping(value = "/create-user", method = RequestMethod.POST)
public String ceateCustomer(@Valid @RequestBody User user){ 
      myService.create(user);
}

當用戶來自其他路由/ create-sp-user時 ,我必須重新驗證用戶:

@RequestMapping(value = "/create-sp-user", method = RequestMethod.POST)
    public String ceateCustomer(@Valid @RequestBody User user){ 
      user.setSp(true);
      // I tried @Valid user without success
      // In my User class if sp = true the field telNumber is mandatory   
      myService.create(user);
}

你有什么主意嗎?

最好的祝福

就像Dominik所說的那樣,@ Valid注釋會在控制器中執行任何代碼之前驗證對象。

如果要在方法內部驗證對象,則應使用自定義驗證器。

實現org.springframework.validation.Validator並在控制器內部調用validate方法。

@RequestMapping(value = "/create-sp-user", method = RequestMethod.POST)
    public String ceateCustomer(@Valid @RequestBody User user, BindingResult result){ 
      user.setSp(true);
      CustomValidator customValidator = new CustomValidator();
      customValidator.validate(user, result);

      if (result.hasErrors()){
        //do something
      } else {
        myService.create(user);
      }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM