A라는 프로젝트에서
Date 타입 변수에 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 어노테이션을 사용 했습니다.
등록폼에서 입력되는 값은 "2013-09-20 14:22:10" 이런 형식의 값과
"Fri Aug 16 2013 18:08:00 GMT+0900" 이 2가지 형식의 값이었는데,
문제없이 등록이 잘 되었습니다.
이번에 프로젝트를 새로 구성하고 DateTimeFormat 어노테이션을 동일하게 명시하고
"Fri Aug 16 2013 18:08:00 GMT+0900" 값을 입력했을때,
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult
typeMismatch.bboard.createdDate,typeMismatch.createdDate,typeMismatch.java.util.Date,typeMismatch
위와 같은 에러가 발생했습니다.
제가 궁금한점은 @DateTimeFormat 어노테이션을 사용하게 되면,
명시한 패턴대로 값이 입력되어야 하는건가요?
그렇다면 A프로젝트에서
"Fri Aug 16 2013 18:08:00 GMT+0900", "2013-09-20 14:22:10" 이 두개의 값이
binding 에러없이 입력되는건
어떤(formatter or converter or propertyEditor등의) 설정이 되어 있어서
가능한걸까요?
A 프로젝트 설정 파일에서 관련정보로 검색해서 찾아봤지만, 찾을 수가 없어서
이렇게 질문 올립니다.
A프로젝트는 Xml 기반으로 설정되어 있고,
새로운 프로젝트는 Java기반 설정입니다.
추가로 conversionService나, propertyEditor , convert는 따로 설정되어 있지 않습니다~
테스트 소스
Controller
@RequestMapping("/test/board")
public class BboardController {
@RequestMapping("form")
public String form(ModelMap model, Bboard board){
model.addAttribute("board", board);
return "/test/board/create";
}
}```
model
@Data public class Bboard { private Long id; @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createdDate; }
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="[http://java.sun.com/jsp/jstl/core"%><%@](http://java.sun.com/jsp/jstl/core"%><%@) taglib prefix="form" uri="[http://www.springframework.org/tags/form"%>](http://www.springframework.org/tags/form"%>)