작성
·
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 메시지 컨버터 편을 참고해주세요.
감사합니다.
답변 감사합니다!