인프런 커뮤니티 질문&답변

해마님의 프로필 이미지
해마

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

HTTP 요청 메시지 - JSON

@ModelAttribute 와 @RequestBody 질문입니다.

작성

·

270

2

안녕하세요. 강의를 보다가 아직 모호한 부분이 있어서 질문 드립니다.

 

@RequestBody는 Http Message Body 정보를 편리하게 조회할 수 있고

@ModelAttribute 는 파라미터 객체를 생성한 후에 setter를 호출해서 값을 binding 해준다고 하셨는데

 

그렇다면 @ModelAttribute는 HttpServlet의 기능을 사용하는 거고(get일때는 쿼리스트링 post일때는 Json), @RequestBody는 보내져오는 body 내용을 Json 형태인지 판별하고 보내주는 역할을 한다고 생각하면 될까요?

답변 1

4

안녕하세요. 해마님, 공식 서포터즈 David입니다.

1. @ModelAttribute는 get, post 상관없이 query string 형태로 된 데이터를 읽어 객체에 세팅해줍니다.

2. @RequestBody는 http message body(이하 body)를 읽어 http message converter로 지정된 형식을 따라 데이터를 변환하여 객체에 세팅해줍니다. 이때, content-type이 json이면 body를 json 포맷으로 읽어들이게 됩니다.

 

http message converter에 대한 자세한 내용은 본 강좌의 HTTP 메시지 컨버터 편을 참고해주세요.

감사합니다.

해마님의 프로필 이미지
해마
질문자

답변 감사합니다!

해마님의 프로필 이미지
해마

작성한 질문수

질문하기