2012-01-24 4 views
2

웹 응용 프로그램에 Spring MVC를 사용하고 있습니다. 사용자가 입력 한 URL이 유효한지 확인해야하며, 기본 확인 작업을 수행 할 수있는 Spring에 뭔가가 있는지 궁금해하고 있습니다 (예 : http/https로 시작하고 도메인 이름 등).Spring MVC로 URL 유효성을 검사하는 가장 좋은 방법은 무엇입니까?

ValidationUtils은 매우 기본적인 검사를 포함하고 나는 그러나이 경우 누군가가 이미 :)

감사

답변

3

UrlValidator아파치 커먼에서 종료되었습니다.

0

사용하십시오을했다 INM 방지하기 위해 선호하는 유효성 검사() 메소드에 정규 표현식을 쓸 수 있습니다 알고 스프링 인터셉터 : 과거

http://java.dzone.com/articles/using-spring-interceptors-your

+0

내가 아는 한, Spring 인터셉터는 HttpRequest 및 HttpResponse를 수정할 수있게합니다. 물론 URL 유효성 검사를 적용 할 수는 있지만 Validator 인터페이스를 사용하는 것이 좋습니다. 내 질문은 더 이상 지저분한 regexp를 사용하는 나를 대신 나를 위해 URL을 확인할 수있는 뭔가가 봄에 있다면. "Awnry Bear"와 같은 것은 순수 Spring과 함께 Hibernate와 함께 위에 보여주었습니다. – Joly

4

, 나는 항상 Hibernate Validator을 활용했다. 양식 빈의 해당 필드에 @URL 제약 조건을 붙이기 만하면됩니다.

이전에 Hibernate의 ORM 부분을 사용 해본 적이 없다면 두려워하지 마십시오. Validator 부분은 ORM에 의존하지 않으며 Spring에 통합하는 것은 very straightforward입니다.

어떤 이유에서든 Hibernate Validator를 사용할 수 없거나, 편안함을 고수하기를 원한다면 정규 표현식을위한 좋은 장소는 RegExLib.com입니다. URI와 일치 할 수있는 몇 가지 패턴 are listed there.

0

나는이 질문이 꽤 오래되었다는 것을 알고 있지만, 나는 똑같이 필요하고 나는 SpringFramework에PropertyEditors와 함께 갈 것이라고 생각한다.

더 정확하게는 URLEditor입니다.이 표현을 사용하여 문자열 표현을 실제 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

, 나는 문자열이 입력 한 여부를 확인하기 위해 봄 검사기 내에서 다음 코드를 사용하는 방법에 대한 생각 : 여기

는 해당 문서에 대한 링크입니다 사용자가 유효한 URL인지 확인하십시오.

try { 
     PropertyEditor urlEditor = new URLEditor(); 
     urlEditor.setAsText(field.getValue()); 
    } catch (IllegalArgumentException ex) { 
      errors.rejectValue("nameOfTheFieldToBeValidated", "url_is_invalid"); 
} 

그러나 현재로서는 어떤 프로토콜이 유효한 것으로 구성 될지 구성 할 수 있습니다 (예 : URLEditor는 "classpath :"로 시작하는 URL도 허용하는 것으로 보입니다)

+0

알았어, 알다시피, 나는 또한 아파치 공유지에서 UrlValidator를 사용한다. – SebastianRiemer

관련 문제