2017-05-19 13 views
0

double이 필요한 필드가 있습니다. 당신이 String 입력하면, 기본 메시지는 같은입니다Spring Mvc - typeMismatch에 대한 사용자 정의 유효성 검사 메시지

Failed to convert property value of type java.lang.String to required type java.lang.Double for property price; nested exception is java.lang.NumberFormatException: For input string: "fsd" 

값이 입력되지 않을 때를위한 사용자 정의 메시지. 이 메시지를 다음과 같이 설정했습니다.

@NotNull(message = "price is required") 
private Double price; 

유형 불일치에 해당하는 주석이 있습니까?

답변

3

간단한 방법은 없습니다. 사실 검증은 적용될 수 없습니다. 검증은 초기화 된 POJO에 적용됩니다. 귀하의 경우에는 POJO를 만들 수 없습니다 Double을 초기화하는 유효한 값이 없습니다.

내 프로젝트에서 해결 방법으로 모든 POJO 필드 문자열을 만들고 유효성을 검사합니다. 또한 문자열 값을 Double/Boolean/Date 등으로 변환하는 메소드가 제공되었습니다.

+0

의미가 있습니다. 감사! – user2892437

-1

유형 불일치에 대한 유효성 검증 주석이 데이터 바인딩 중에 발생하고 필드에 대한 데이터 바인딩이 실패하면 유효성 검증이 수행되지 않으므로 유효성 검증 주석이 없습니다. 그러나 오류 목록에 나타나는 메시지를 변경하려면 프로젝트의 리소스 번들에있는 messages.properties 파일을 사용하여이를 수행 할 수 있어야합니다.

typeMismatch.org.joda.time.LocalDate=Dates must be entered in the format MM/DD/YYYY 

자세한 내용은 this question를 참조하십시오 : 나는 joda 시간 날짜 필드에 나를 위해 작동 나의 메시지 파일에서 다음 키를 사용합니다.

+0

누군가가 downvote를 설명 할 수 있다면 나는 내 대답을 삭제하게되어 기쁩니다. –