[英]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.