Код: Выделить всё
@ControllerAdvice(assignableTypes = {ServeisExternsController.class})
public class SextExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity handleValidationExceptions(MethodArgumentNotValidException ex) {
String mis = ex.getBindingResult()
.getFieldErrors()
.stream()
.findFirst()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.orElse("XX");
Map resposta = new HashMap();
resposta.put("X", -2);
resposta.put("X", mis );
return new ResponseEntity(resposta, HttpStatus.BAD_REQUEST);
}
< /code>
globalexceptionHandler < /p>
@ControllerAdvice
@Order(2)
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity handleValidationExceptions(MethodArgumentNotValidException ex) {
ResponseError response = new ResponseError();
List errors = new ArrayList();
ex.getBindingResult().getFieldErrors().forEach(error -> {
Error err = new Error(HttpStatus.BAD_REQUEST.value(), getErrorMessage(error));
errors.add(err);
});
response.setErrors(errors);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(response);
}
private String getErrorMessage(FieldError error) {
String campo = error.getField();
String errorCode = error.getCode();
switch (errorCode) {
case "NotNull":
return getNotNull(campo);
case "NotEmpty":
return getNotEmpty(campo);
case "NotBlank":
return getNotEmpty(campo);
case "Size":
int min = (int) error.getArguments()[1];
int max = (int) error.getArguments()[2];
return getSize(campo, min, max);
case "CustomValidator":
return getCustomMessage(error.getDefaultMessage());
default:
return getErrorValidacioDefault(campo);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... lleradvice