Комментарии 9
Что будет, если критерии валидации одного поля зависят от другого?
Дропдаун тип документа {паспорт РФ, загранпаспорт, права, свидетельство о рождении}
Следующее поле - номер документа - text с вводом и валидацией по маске в зависимости от значения первого.
Подобную проблему можно решить следующим образом,- используя стандартный валидатор.
У любой аннотации javax.validation есть параметр message, туда можно внести готовое сообщение, но это нам не подходит, так как, как правило, требуется локализация и поэтому в message кидаем ключ сообщения из message bundle. Туда же, в параметр message можно положить код ошибки, например
@RegExp(value = "^[а-яА-ЯёЁ .'-]+$", message = "wrong.validation.email.{777}")
Теперь в ControllerAdvice из стандартного исключения достаем шаблон что мы указали в dto, используя этот шаблон достаем локализованное сообщение из бандла, так как шаблон содержит код, то путем не хитрого парсинга достаем его (777) и засовываем в ответ.
1) При увелечении нагрузки аспекты встанут боттлнеком
2) Есть множество api для валидации, которое можно использовать вместо
Пишем свой Validation API для Spring Boot приложения