작성
·
585
0
안녕하세요 김영한 개발자님! 강의 항상 잘 듣고 있습니다.
@RequestParam과 @ModelAttribute 파트를 듣고 살짝 헷갈리는게 있어서 질문글 남겨요
@RequestParam은 만약 url을 localhost:8080/?username=inflearn&age=20 이라고 보냈을 때 @RequestParam String username, @RequsetParam int age 에 각각 inflearn, 20이 바인딩 되는 것이라고 이해했습니다.
@ModelAttribute는 객체에 setter, getter 역할을 대신해주는 것이라고 이해했습니다.
제가 제대로 이해한게 맞을까요?
제대로 이해한게 맞다면 저 두개의 차이점이 무엇인지 잘 모르겠습니다ㅜ 단순히 RequestParam은 int, string 같은 일반타입이고 ModelAttribute는 객체를 대상으로 하는건가요? 아니면 RequestParam을 더 편리하게 만든게 modelAttribute라고 이해하면 되는걸까요?
감사합니다.
답변 2
4
@RequestParam은 요청 파라미터를 받아주는 어노테이션이고,
@ModelAttribute는 요청 파라미터를 받아서 특정 객체에 해당 값을 setter를 통해서 바인딩 해주고 Model 객체에 담아주는 어노테이션 이에요!
쉽게 정리해보면
@RequestParam은 요청 파라미터를 받는 작업만 도와주고 객체를 생성하고 값을 바인딩 하는 작업을 직접해야되는 어노테이션이고
@ModelAttribute 요청 파라미터를 받아서 객체 생성부터 값 바인딩, Model에 담아주는 작업까지 전부 해주는 어노테이션입니다!
지난 글인데도 자세한 답변 감사드립니다 :) 덕분에 이해했어요!