Я знаю, что этот вопрос довольно старый, но мне просто нужно то же самое, и я думаю, что я пойду с PropertyEditors в SpringFramework.
Точнее, есть URLEditor , который можно использовать для преобразования представления String в фактический объект URL.
Вот ссылка на соответствующую документацию:
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-beans-conversion
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/propertyeditors/URLEditor.html
В моем случае я думаю об использовании следующего кода в Spring Validator, чтобы проверить, является ли строка, введенная пользователем, действительным URL-адресом:
try {
PropertyEditor urlEditor = new URLEditor();
urlEditor.setAsText(field.getValue());
} catch (IllegalArgumentException ex) {
errors.rejectValue("nameOfTheFieldToBeValidated", "url_is_invalid");
}
Однако на данный момент я не уверен, возможно ли настроить, какой протокол будет принят как действительный (т.е. URLEditor, похоже, также принимает URL-адреса, начинающиеся с «classpath:»)