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

blackhole124님의 프로필 이미지

작성한 질문수

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

상품 등록 처리 - @ModelAttribute

Model이 생략되는 이유가 궁금합니다.

23.09.17 21:11 작성

·

435

·

수정됨

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
스크린샷 2023-09-17 오후 9.07.21.png스크린샷 2023-09-17 오후 9.07.04.png

Q1.

addItemV1 코드를 보면

1.파라미터로 받아오는 변수들을 item이라는 객체에 저장한다.

2.item이라는 객체를 itemRepository에 저장한다.

라는 부분까지는 이해했습니다.

근데 model.addAttribute 부분은 어떤 역할을 하는건가요?

그리고 Model이라는 개념은 자바 스프링에서 "데이터"라고

이해를 했습니다.

근데 Model이라는 객체가 따로 존재하는거 같은데 이건 무슨 역할을 하는건가요?

지금와서 전부 헷갈리네요 설명 부탁드립니다

 

Q2.

해당 코드 중에서 model이 생략되는 메소드에서는

어떻게 model.addAttribute 역할을 대신할 수 있는건가요?

 

Q3

public String addItemV1(@RequestParam String itemName,
                   @RequestParam int price,
                   @RequestParam Integer quantity,
                   Model model){
    Item item=new Item();
    item.setItemName(itemName);
    item.setPreice(price);
    item.setQuantity(quantity);

    itemRepository.save(item);

    model.addAttribute("item",item);



    return "basic/addForm";
}

 

라는 코드에서

item이라는 객체를 model.addAttribute 하는 이유가

item 객체를 model이라는 객체에 전달하면

자바 스프링에서 자동으로 model 안에 존재하는 객체가 view로 전달이 되기 때문인가요??

 

답변 1

0

codesweaver님의 프로필 이미지

2023. 09. 19. 13:38

안녕하세요. blackhole124님, 공식 서포터즈 코즈위버입니다.

Model은 말씀하신것처럼 백엔드 코드에서 뷰로 데이터를 전달하는 컨테이너 역할을 합니다. 여기에 담아야지만 view 파일에서 이 값들을 꺼내 사용할 수 있습니다.

만약 view에서 사용할 데이터가 아무것도 없다면, Model을 생략할 수 있습니다.

감사합니다.