[SPRING] 날짜가 잘못된 경우 Spring mvc Joda Datetime 변환기가 실패합니다.
SPRING날짜가 잘못된 경우 Spring mvc Joda Datetime 변환기가 실패합니다.
Joda DateTime을 포함하는 JSP에서 매핑하려는 도메인 객체가 있습니다.
public beanClass{
private Long id;
@DateTimeFormat
private DateTime start;
getters and setters...
}
Spring에 등록 된 다음 컨버터가 있습니다.
final class StringToJodaDateTimeConverter<S, T> implements Converter<String, DateTime> {
private static final DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy");
public DateTime convert(String in) {
try{
return fmt.parseDateTime(in);
}catch(Exception e){
throw new IllegalArgumentException("Invalid date");
}
}
}
Spring은 내 유효성 검사기 클래스보다 먼저 변환기를 실행하고 내 오류 메시지를 전체 오류로 채 웁니다.
java.lang.String 유형의 특성 값을 특성 sampleDate의 필수 유형 org.joda.time.DateTime으로 변환하는 데 실패했습니다. 중첩 예외는 org.springframework.core.convert.ConvertFailedException : 값 "asdf"를 java.lang.String 유형에서 org.joda.time.DateTime 유형으로 변환 할 수 없습니다. 중첩 예외가 java.lang.IllegalArgumentException : 잘못된 날짜입니다.
내가 원하는 것은 예외에서 "잘못된 날짜"메시지를받는 것입니다.
모든 것을 표시하는 대신 "잘못된 날짜"라는 예외 메시지를 표시하는 방법이 있습니까?
해결법
-
==============================
1.특정 정보를 선언하려면 messages.properties 파일을 사용해야합니다.
특정 정보를 선언하려면 messages.properties 파일을 사용해야합니다.
typeMismatch.java.util.Date = Invalid date
물론 spring-context.xml에이 파일에 대한 정보를 제공해야한다.
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="/WEB-INF/config/messages"/> <property name="defaultEncoding" value="UTF-8"/> </bean>
from https://stackoverflow.com/questions/6539884/spring-mvc-joda-datetime-converter-fail-if-invalid-date by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring-JDBC에서 격리 수준 SERIALIZABLE (0) | 2019.05.12 |
---|---|
[SPRING] javax.imageio.ImageIO 클래스를 초기화 할 수 없습니다. (0) | 2019.05.12 |
[SPRING] Grails 3.x : JPA / Hibernate 도메인 클래스 재사용 : 도메인 클래스를 찾을 수 없음 (0) | 2019.05.12 |
[SPRING] Spring은 오류를 throw합니다. Bean 정의가 추상입니다. (0) | 2019.05.12 |
[SPRING] 다중 Spring PropertyPlaceholderConfigurer 동시에 (0) | 2019.05.12 |