2017-02-04 6 views
2

В моей Spring загрузки приложения У меня есть следующий метод:Spring Validation - NULL или действительный URL

Decision create(@NotBlank String name, String url, @NotNull User author); 

Прямо сейчас прямо в коде я проверка следующее условие:

if (!org.apache.commons.lang3.StringUtils.isEmpty(url) && !urlValidator.isValid(url)) { 
    throw new IllegalArgumentException("Decision url is not valid"); 
} 

В другое слово - url параметр может быть null или действительный адрес.

Возможно ли заменить этот код существующей аннотацией проверки (например, JSR-303)?

+1

Просто используйте ['org.hibernate.validator.constraints.URL'] (https://docs.jboss.org/hibernate/validator/5.2/api/org/hibernate/validator/constraints/URL.html) аннотация , Переносимость не такая большая сделка –

ответ

1

Спецификация Bean Validation не содержит ограничений для URL-адресов, но некоторые разработчики добавляют это ограничение как расширение, например @URL Hibernate Validator, но помнят использование переносимости поврежденных расширений, чтобы избежать создания собственного валидатора на основе регулярного выражения , Для другой части вы можете использовать @NotBlank для пустого элемента строки url, который вы использовали для строки имени, похоже, что у вас есть путаница между ограничениями @NotNull, @NotBlank, NotEmpty.

Взгляните на этом ответ на что: https://stackoverflow.com/a/17137308/5964741

Но независимо от того, если вы выбираете расширение или создать свой собственный валидатор Пусто контроль за строку адреса будут излишними.

Смежные вопросы