How do I customize default error message from spring @Valid validation?

前端 未结 10 856
孤街浪徒
孤街浪徒 2020-12-22 23:04

DTO:

public class User {

    @NotNull
    private String name;

    @NotNull
    private String password;

    //..
}

Controller:

10条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-22 23:59

    @ControllerAdvice
    @RestController
    public class CustomizedResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
    
            @Override
            protected ResponseEntity handleMethodArgumentNotValid(
                    MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
    
               // ex.getBindingResult(): extract the bind result for default message. 
                  String errorResult = ex.getBindingResult().toString();
                 CustomizedExceptionHandlerResponse exceptionResponse = new CustomizedExceptionHandlerResponse(
                        errorResult, new Date(), request.getDescription(false));
    
                return new ResponseEntity<>(exceptionResponse, HttpStatus.BAD_REQUEST);
            }
    
    
    }
    
    class CustomizedExceptionHandlerResponse {
    
       private String message;
       private String status;
       private Date timestamp;
    
       // constuctor, setters, getters...
    }
    
        

    提交回复
    热议问题