@DateTimeFormat 사용에 대해서 궁금한 점이 있습니다.

2013-08-19 13:57

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"%>)