본문 바로가기

Programing/Framework

[Spring] @Controller에서 @RequestParam로 Date 타입 받기.

특정 기간을 조회한다거나 할 때 HTTP GET으로 요청 파라메터를 받을 때 날짜로 받을 경우가 있다.

이런경우에 날짜 포맷 자체는 문자열이나 이것을 Date로 변환을 해야 한다.


스프링에서는 파라메터에 대한 정보를 어노테이션으로 정보를 줄 수 있다.


org.springframework.format.annotation.DateTimeFormat


예)

@RequestParam(required = false) @DateTimeFormat(pattern = "yyyyMMdd") Date startDate,


주의 할 점은 파라메터가 해당 패턴과 일치하지 않으면 404에러로 빠질 수 있다는 것이다.

그런 것을 화면에 표시한다고 하면 String으로 받아서 Date로 변환하는 것을 수동으로 해줘야 할 것이다.


또한, jodatime의 DateTimeFormat등으로 String -> Date 변환을 할 수 있다. 어노테이션과 클래스 이름이 똑같은 것은 의도된 것인가? 둘은 동시에 쓰기 어렵게 하려는 스프링팀의 의도?


org.joda.time.format.DateTimeFormat.forPattern()