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
)
'Programming > 트러블슈팅' 카테고리의 다른 글
[Mysql] IN쿼리가 인덱스를 타지 않는 현상 (1) | 2021.01.28 |
---|---|
< json parsing error (0) | 2019.12.28 |
[Spring] IntelliJ에서 종종 Build가 깨지는 오류 (2) | 2019.12.28 |
JPA 테이블 updated_at이 갱신안되는 문제 (1) | 2019.08.10 |