[SPRING] 봄 mvc에서 LocalDate에 대한 전역 데이터 바인딩을 등록하는 방법?
SPRING봄 mvc에서 LocalDate에 대한 전역 데이터 바인딩을 등록하는 방법?
Spring-mvc로 만든 Servlet에서 LocalDate를 유형으로 사용하고 싶습니다. 사용자는 yyyyMMdd, yyyy-MM-dd, yyMMdd, yy-MM-dd 등 여러 유효한 형식으로 날짜를 제공 할 수 있어야합니다.
따라서 해당 클래스에 대한 자체 변환기를 등록하고 전체 응용 프로그램에 대해 전역으로 등록하려고합니다. 그러나 그것은 결코 픽업되지 않는다.
문제 : 내 사용자 정의 편집기가 호출되지 않습니다.
@Bean
public CustomEditorConfigurer init() {
CustomEditorConfigurer c = new CustomEditorConfigurer();
c.setPropertyEditorRegistrars(new PropertyEditorRegistrar[] {
(registry) -> registry.registerCustomEditor(LocalDate.class, new LocalDatePropertyEditor())
});
return c;
}
public class LocalDatePropertyEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) {
this.setValue(LocalDate.parse(text, DateTimeFormatter.ISO_DATE));
}
@Override
public String getAsText() {
return this.getValue().toString();
}
}
@RestController
public void DateServlet {
@RequestMapping("/test")
public void test(@RequestParam LocalDate date) {
}
}
전화 할 때 : localhost : 8080 / test? date = 2017-07-05
디버깅하는 동안 LocalDate PropertyEditor 클래스가 호출되지 않는다는 것을 알 수 있습니다. 그런데 왜?
해결법
-
==============================
1.나는 아직도 PropertyEditor가 작동하지 않는 이유를 모른다. 하지만 다음과 같은 솔루션이 효과적이었습니다.
나는 아직도 PropertyEditor가 작동하지 않는 이유를 모른다. 하지만 다음과 같은 솔루션이 효과적이었습니다.
@Configuration public class LocalDateConfig extends WebMvcConfigurerAdapter { @Override public void addFormatters(FormatterRegistry registry) { super.addFormatters(registry); registry.addFormatterForFieldType(LocalDate.class, new Formatter<LocalDate>() { //override parse() and print() }); } }
from https://stackoverflow.com/questions/44924656/how-to-register-global-databinding-for-localdate-in-spring-mvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring은 다른 프로젝트에서 응용 프로그램 컨텍스트 가져 오기 (0) | 2019.04.04 |
---|---|
[SPRING] org.hibernate.MappingException : 알 수없는 엔티티 : (0) | 2019.04.04 |
[SPRING] 스프링 빈에 int 배열을 주입하는 법 (0) | 2019.04.04 |
[SPRING] Java 9 용 Spring 5가 필요합니까? (0) | 2019.04.04 |
[SPRING] tomcat7 : JDBC 드라이버 클래스를로드 할 수 없습니다 [com.mysql.jdbc.Driver] (0) | 2019.04.04 |