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

kmr345님의 프로필 이미지

작성한 질문수

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

상품 등록 처리 - @ModelAttribute

addAttribute 질문입니다.

21.09.20 10:32 작성

·

278

1

@GetMapping
public String items(Model model) {
List<Item> items = itemRepository.findAll();
model.addAttribute("items", items);
return "basic/items";
}

 

여기에서 계속 새로고침을 하면 model에 items객체를 계속 addAttribute 될거같은데 그럼 model에는 어떻게 저장이 되나요?

item 객체가 같은지 확인하고 같으면 저장하지 않고, 같지 않으면 새로 추가하는 방식으로 돌아가나요? addAttribute가 어떻게 동작하는지 궁금합니다.

답변 1

3

David님의 프로필 이미지

2021. 09. 20. 14:32

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

.
컨트롤러 내 model의 attributes는 Response를 생성할 때 Response의 attributes에 추가되어집니다.

그리고 핸들러 어댑터쪽에서 내부적으로 ModelAndViewContainer를 만들면서 defaultModel을 생성해둡니다. 그걸 가져와서 컨트롤러 Model로 넣어주는 것이고요.

.

감사합니다.

kmr345님의 프로필 이미지

작성한 질문수

질문하기