다음 스프링 폼이 있습니다.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
페이지에서 예외 대신 유효한 메시지를 표시하는 데 도움을주십시오.
감사 마이크
예외가 무엇인지 확인하십시오. '해석 할 수 없습니다. 060412009324092014' 문자열로 전달하고 있습니까? 문자열은'MM/dd/yyyy' 형식이어야합니다. 전달 된 문자열을 확인하십시오. – Braj
웹 페이지에 있기 때문에 사용자가 입력하는 것을 제어 할 수있는 방법이 없습니다. 입력 값의 유효성을 검사하고 입력 된 값이 올바르지 않으면 오류 메시지를 표시하고 싶습니다. –
이 경우에는 오류가 표시되고 컨트롤러 메서드에서'BindingResult bindingResult'를 사용하여 양식의 유효성을 검사하고'bindingResult.hasErrors() '를 호출해야합니다. – Braj