Весенняя загрузка: @Valid не работает с @RequestHeader - PullRequest
0 голосов
/ 10 июля 2020

Я действительно изо всех сил пытаюсь совместить @Valid с @RequestHeader. Может быть, это не поддерживается или есть способ включить? Мне не удалось найти полезную информацию об этом ...

Когда я аннотирую весь контроллер с помощью @Validated, он работает, так что это не большая проблема. Однако мне кажется, что он должен работать и с @Valid, поэтому я хотел знать, не упустил ли я что-то здесь.

Пример кода:

    @GetMapping("/validationControllerHeader")
    public String validationControllerHeader(@Valid @RequestHeader @Pattern(regexp = "[a-z]{3}[0-9]+") String someheader) {
        return someheader;
    }

Я использую @Valid в том же контроллере тестирования для параметров запроса и проверки тела, и там он работает, поэтому проблема присутствует только с заголовками.

Использование Spring boot 2.3.1.RELEASE

1 Ответ

1 голос
/ 10 июля 2020

Вы определенно должны использовать @Validated в своем классе контроллера, поскольку это означает, что проверка должна выполняться в этом классе. Из документации :

Чтобы иметь право на проверку метода, управляемого Spring, все целевые классы должны быть аннотированы с помощью аннотации Spring @Validated, которая при желании может также объявлять проверку группы для использования.

И, поскольку вы используете @Pattern (которая является аннотацией Bean Validation), вам не нужно @Valid.

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