Как извлечь значение параметров аннотации проверки из RestControllerAdvice при загрузке Spring? - PullRequest
0 голосов
/ 24 мая 2019

Я создал пользовательскую аннотацию, которая проверяет, что текст не содержит специальных символов, но я хочу отобразить код ошибки, когда это поле содержит специальные символы. Например:

@NoSpecialCharacters(code = 125412, message = "name field should not contain special characters")
String name;

Это пример моего кода. Я создал аннотацию с помощью constraintValidator, поскольку для RestAdviceController он содержит следующий код:

@Override
    protected ResponseEntity<Object> handleMethodArgumentNotValid(final MethodArgumentNotValidException ex, final HttpHeaders headers, final HttpStatus status, final WebRequest request) {
        //
        final List<String> errors = new ArrayList<String>();
        for (final FieldError error : ex.getBindingResult().getFieldErrors()) {
            errors.add(error.getField() + ": " + error.getDefaultMessage());
        }
        final ApiError apiError = new ApiError(HttpStatus.BAD_REQUEST, ex.getLocalizedMessage(), errors);
        return handleExceptionInternal(ex, apiError, headers, apiError.getStatus(), request);
    }

проблема здесь в том, что fieldError содержит список аргументов, но они являются массивом объектов. Я не могу извлечь точно код ошибки, который я вставил в аннотацию. Как я могу прочитать код, который я вставил в аннотацию здесь, в RestAdviceController?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...