본문 바로가기

Programming/트러블슈팅

@RequestParam 날짜형식 LocalDate 매핑

API에서 Param 타입을 LocalDate로 받았을 때 문제가 발생했다.

 

@RequestBody 로 받았을 때는 Json으로 파싱을 하므로, 보통 전역적으로 걸려있는 Json Serializer 에서 yyyy-MM-dd 포맷 String을 자동으로 LocalDate로 파싱해주는 설정을 해준다.

 

하지만 @RequestParam 을 사용할 때는 쿼리스트링으로 Param을 받으므로 전역적으로 걸려있는 Json Serializer가 작동하지 않는다.

그렇다는 말은, 쿼리스트링으로 Param이 들어올 땐 String이 LocalDate로 변환되지 않는다는 말이다.

 

그래서 @RequestParam 어노테이션 앞에 @DateTimeFormat(pattern = "yyyy-MM-dd") 을 붙여서 해결할 수 있다.

 

@RequestMapping(value = "/get", method = RequestMethod.GET)
@ResponseBody
public String getByRefDt(
    @RequestParam("refDt") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate refDt
)