본문 바로가기

Springあるある

[@RequestParam,@ModelAttribute] VS @ResponeBody(Feat.HttpMessageConverter)

@RequestParam @ModelAttribute : HttpMessageConverter 작동 x

@ResponseBody : HttpMessageConverter 작동 o

-> HttpMessageConverter는 @RequestParam, @ModelAttribute와 같이 Http 요청 매개변수를 처리할 때 작동하는 것이

아니라 Rest API와 같이 Http 요청의 Body를 객체로 변환할 때 작동한다.(주로, JSON <-> 객체)

 

또한 @RequestParam,@ModelAttribute는 HTTP 요청이 들어와서 컨트롤러가 호출되기 전에 [타입 오류]가 발생해도 

그 오류를 BindingResult 객체에 담아서 컨트롤러를 호출할 수가 있지만, 

@ResponseBody 같은 경우, 즉 HttpMessageConverter의 경우 객체로의 변환이 실패하면 예외가 터지면서 컨트롤러 호출

자체가 불가능하다.