2014-07-25 1 views
0

다음 스프링 폼이 있습니다.Spring MVC, JSR 303을 사용하여 bean을 binid로 변환하는 동안 예외가 발생했습니다. Annotation

및 해당 Java bean이 사용자가 입력 한 날짜를 bean의 fromDate 특성에 바인드하도록합니다. 사용자가 나는 예외를받지 오전 값이 제대로 콩 변수로 설정지고있다 "MM/DD/YYYY"형식으로 날짜를 입력

@NotNull 
@Past 
@DateTimeFormat(pattern = "MM/dd/yyyy") 
private Date fromDate; 

.

그러나 사용자가 다른 형식 (예 : 23/12/2012) 또는 잘못된 날짜 (예 : 060412009324092014)로 날짜를 입력하면 다음 예외가 발생합니다.

java.lang.String 유형의 속성 값을 속성 fromDate의 필수 유형 java.util.Date로 변환하는 데 실패했습니다. 중첩 예외는 org.springframework.core.convert.ConvertFailedException입니다 : 형식 java.lang.String에서 @ javax.validation.constraints.NotNull @ javax.validation.constraints.Past @ org.springframework.format.annotation 형식으로 변환하는 데 실패했습니다. 060412009324092014 값의 DateTimeFormat java.util.Date; 중첩 예외는 java.lang.IllegalArgumentException : 구문 분석 할 수 없습니다. 060412009324092014

페이지에서 예외 대신 유효한 메시지를 표시하는 데 도움을주십시오.

감사 마이크

+0

예외가 무엇인지 확인하십시오. '해석 할 수 없습니다. 060412009324092014' 문자열로 전달하고 있습니까? 문자열은'MM/dd/yyyy' 형식이어야합니다. 전달 된 문자열을 확인하십시오. – Braj

+0

웹 페이지에 있기 때문에 사용자가 입력하는 것을 제어 할 수있는 방법이 없습니다. 입력 값의 유효성을 검사하고 입력 된 값이 올바르지 않으면 오류 메시지를 표시하고 싶습니다. –

+0

이 경우에는 오류가 표시되고 컨트롤러 메서드에서'BindingResult bindingResult'를 사용하여 양식의 유효성을 검사하고'bindingResult.hasErrors() '를 호출해야합니다. – Braj

답변

1

나는 다음과 같은 특성을 갖는하여 문제를 해결할 수 있었다.

typeMismatch.bean.fromDate = 날짜가 잘못되었습니다!

감사합니다. 마크.