Я могу установить пользовательский org.springframework.validation.Validator
в @InitBinder
контроллера.Настройка глобального настраиваемого валидатора для Spring
Но как установить валидатор, который будет использоваться всякий раз, когда валидатор по умолчанию обрабатывает определенный класс, включая его вложенные свойства?
Перемещен метод '@ InitBinder' в класс' @ ControllerAdvice'. Однако даже при использовании 'addValidators' пользовательский валидатор вызывается для любого класса. Если я возвращаю 'false' из метода' support' для других классов, проверка этих классов не выполняется. Таким образом, мое текущее решение заключается в том, чтобы обернуть «валидатор» по умолчанию в пользовательский валидатор и делегировать вызовы для проверки объектов, которые я не хочу проверять на себя ... – ejain
@ejain Поведение метода 'support', который вы описали, звучит странно , Не могли бы вы показать свой класс Validator и пример того, как вы вызываете проверку? –
Я полагаюсь на Spring, чтобы вызывать проверку на аргументы метода контроллера, аннотированные с помощью javax.validation.Valid', например. 'public void post (@Valid @RequestBody Person p)'. Моя первоначальная реализация validator похожа на пример PersonValidator в документах по адресу http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/validation.html. – ejain