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

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

정리

강의를 보다 헷갈려서 질문입니다.

작성

·

399

·

수정됨

0

공부하다가 갑자기 @ModelAttribute의 작동 원리가 헷갈려서 웹에서 itemName, price, quantity만 파라미터로 넘기고 찍어봤는데

스크린샷 2023-04-06 오전 12.47.37.png

이렇게 나오는데요 그렇다면

1. @ModelAttribute가 붙은 객체 생성

2. 웹에서 넘어온 파라미터 중 @ModelAttribute가 붙은 객체에 주입할 수 있는 데이터 찾아서 주입 ( 없다면 null로 냅둠)

3. @ModelAttribute가 붙은 객체만 Model에 추가 이렇게 되는 건가요 ?

그럼 결국 Model에 자동적으로 추가 되는 건 @RequestParam이나 @ModelAttribute , @RequestBody 가 붙은 객체 or 변수들만이고, 웹에서 넘어오는 값들 중 저 애노테이션으로 붙지 않은 값들은 전부 폐기 되는 건가요?

답변 1

0

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

  1. 네, 맞습니다.

  2. Model에 자동으로 추가되는 것은 @ModelAttribute에만 해당합니다. 웹에서 컨트롤러로 넘어오는 값들이 있더라도 컨트롤러에서 넘어오는 값들에 대한 처리가 없다면(예: 파라미터에서 아무런 값도 받지 않을 때) 해당 값들을 사라진다고 생각하시면 됩니다.

감사합니다.

예:파라미터에서 아무런 값도 받지 않을 때

-> 이 경우는 컨트롤러 메소드단에서 @RequestParam, @ModelAttribute와 같이 데이터를 바인딩하고 작업을 안 했을 때를 말씀하시는 건가요 >?

파라미터에서 아무것도 처리하지 않을 때를 말합니다.

예: addItem()

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기