2013-05-01 7 views
3

내 봄 응용 프로그램에서 유효성 검사 목적으로 Hibernate Validator을 사용하고 있습니다. 두 날짜 필드 사이의 봄 유효성 검사?

내가, 날짜 필드에 오는 때 쉽게

작동하지만거야 .. @Email, @NotEmpty처럼주고 문제를 간단한 검증을하고있을 때 ...

문제는 '내 JSP 페이지에 문자열 그럼 내가 날짜를 문자열로 변환하고 있습니다로 m지고 값은 내가이 0으로 변환하고있어

@NotEmpty(message = "Write Some Description") 
private String description; 

private String fromDateMonth; 

private String fromDateYear; 

private String toDateMonth; 

private String toDateYear; 

...

듣고 내 예입니다 .. 입력 내 컨트롤러 클래스에서 Date에및 fromDateYear을 입력하십시오.

Validator Annotation을 컨트롤러 클래스에 추가 할 수 있습니까?

기타 현명한 내 의견은 무엇입니까? 제안 해주세요 ...

답변

7

fromDate가 toDate보다 전에 있는지 확인하려면이 다중 필드 유효성 검사를 수행하기 위해 사용자 정의 유효성 검사기를 작성할 수 있습니다. 사용자 정의 유효성 검사기를 작성하고 유효성 검사중인 bean에 배치되는 사용자 정의 주석을 정의 할 수도 있습니다.

자세한 내용은 다음 답변을 참조하십시오.

1

컨트롤러에서 Bean 유효성 검사를 사용할 수 있는지 확인하려면 모델에서했던 것처럼 속성에 주석을 추가하십시오. 하지만 가장 좋은 방법은 문자열 대신 모델에 Date 유형을 사용하는 것입니다.

+0

그 방법은 그래서 .. 유형은 날짜 ... 그래서 간단하지만 문제는 내 JSP는 두 개의 선택 상자 말이지을 가지고 있으며 한 달 동안이며, 한 해에 대 한 경우 내가 문자열을 가져 가고있어 ... –

+0

fromdate가 todate보다 큰 경우 내 컨트롤러 클래스에서 먼저 두 날짜를 비교한다. BindingResult 객체에 오류를 추가하지만 주석을 추가 할 빈 클래스에 추가하는 방법은 무엇입니까? –

+0

모델에서 Date 객체를 사용하고 JSF에서 날짜 필드를 사용하면 모델 내에서 주석을 직접 사용할 수 있으며 오늘 날짜가 전후인지 테스트 할 수 있습니다 (if 마지막 주석을 '@ Past' 또는'@ Future' 주석으로 잘 이해했습니다. –