SpringBoot涓€庝箞瀹炵幇璇锋眰鍙傛暟鏍¢獙
鍦⊿pring Boot涓紝鍙互浣跨敤JSR 303瑙勮寖涓殑娉ㄨВ鏉ュ疄鐜拌姹傚弬鏁扮殑鏍¢獙銆傚叿浣撴楠ゅ涓嬶細
- 鍦–ontroller绫讳腑鐨勮姹傛柟娉曞弬鏁板墠娣诲姞鏍¢獙娉ㄨВ锛屾瘮濡侤Validated鍜孈NotBlank绛夈€?/li>
@RestController
@RequestMapping("/api")
@Validated
public class UserController {
@PostMapping("/user")
public ResponseEntity<String> createUser(@Valid @RequestBody UserDto userDto) {
// 澶勭悊璇锋眰鍙傛暟
return ResponseEntity.ok("User created successfully");
}
}
- 鍒涘缓涓€涓狣TO绫伙紝鐢ㄦ潵灏佽璇锋眰鍙傛暟锛屽苟鍦―TO绫荤殑灞炴€т笂娣诲姞鏍¢獙娉ㄨВ銆?/li>
public class UserDto {
@NotBlank(message = "Name is mandatory")
private String name;
@Email(message = "Email should be valid")
private String email;
// getter and setter
}
- 鍦–ontroller绫讳腑瀹氫箟涓€涓叏灞€寮傚父澶勭悊鍣紝鐢ㄦ潵鎹曡幏鏍¢獙澶辫触鐨勫紓甯革紝骞惰繑鍥為敊璇俊鎭€?/li>
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ResponseEntity<String> handleValidationException(MethodArgumentNotValidException ex) {
BindingResult result = ex.getBindingResult();
List<String> errorMessages = result.getAllErrors().stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.toList());
return ResponseEntity.badRequest().body(String.join(", ", errorMessages));
}
}
杩欐牱锛屽綋璇锋眰鍙傛暟鏍¢獙澶辫触鏃讹紝浼氳繑鍥炵浉搴旂殑閿欒淇℃伅銆係pring Boot浼氳嚜鍔ㄦ牎楠岃姹傚弬鏁帮紝骞跺湪鏍¢獙澶辫触鏃舵姏鍑篗ethodArgumentNotValidException寮傚父锛屽叏灞€寮傚父澶勭悊鍣ㄤ細鎹曡幏璇ュ紓甯稿苟杩斿洖閿欒淇℃伅銆?/p>
相关问答