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

gnstjrdlsla님의 프로필 이미지
gnstjrdlsla

작성한 질문수

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

Model 추가 - v3

섹션4_Model추가 V3 강의 질문 입니다.

해결된 질문

작성

·

422

0

섹션4_Model추가 V3 강의 내용 중

FrontControllerServletV3 클레스 에서

해당 render 메서드의 파라미터 mv.getModel()에는

 

createParamMap 메서드에서 만들어진 paramMap? 즉 key, value로 생성된 모든 request 값이 들어가고,

 

view.render(mv.getModel(), request, response); 메서드 내부에

 

modelToRequestAttribute 메서드는 위에서 넘겨준 paramMap을 다시 request에 새팅해주는게 맞나요?

 

어질 어질 하네요.. ㅜㅜ

 

답변 1

1

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

image코드 실행 흐름을 먼저 이해하시면 좋을 것 같은데요,

(createParamMap을 설명하신 부분은 이해하신게 맞습니다.)

요청정보(request)를 바탕으로 Map 을 만들고, Map데이터를 전달하여 ModelView정보 데이터를 생성합니다.

-

그렇다면 Model과 View에는 어떤게 담기는지 확인을 해볼게요.

(강의에서 작성했던 웹 브라우저 화면들을 머릿속에 그리면서 따라오시면 좋습니다.)

  • MemberFormController

    • image작성 양식이니까 View에 이름만 존재합니다.

  • MemberSaveController

    • image저장하려는 회원정보가 map(model)에 저장됩니다. view의 name은 save-result입니다.

  • MemberListController

    • image전체 회원 목록이 map(model)에 저장됩니다. view의 name은 members 입니다.

 

mv.getModel()에 어떤 것들이 들어있는지는 이해하셨을거라 생각합니다.

아래의 코드를 위에서 설명드린 것을 바탕으로 생각해보면,

image각 Controller에서 ModelView반환했던 map(model) 데이터를 foreach 각각 순회하여

requestkey(이름)와 value(값)을 set(세팅) 하는 코드로 이해하시면 됩니다.

감사합니다.

gnstjrdlsla님의 프로필 이미지
gnstjrdlsla

작성한 질문수

질문하기