강의

멘토링

로드맵

Inflearn Community Q&A

holykhd's profile image
holykhd

asked

Spring MVC Part 1 - Core technologies for backend web development

Add Model - v3

FrontControllerServletV3의 기능중 이해가 안되는 부분이 있습니다.

Written on

·

390

3

Map<String, String> paramMap = createParamMap(request);
ModelView mv = controller.process(paramMap);

String viewName = mv.getViewName();
MyView view = viewResolver(viewName);

view.render(mv.getModel(), request, response);

안녕하세요

위 소스에 대한 내용이 궁금해서 문의 드립니다.

제가 이해한대로 우선 설명을 드리면..

Map<String, String> paramMap = createParamMap(request);

request에서 받아온 값들을 Key, Value 형식으로 paramMap에 담아주는 역할을 함.(key: username, value : 34)이런식으로

ModelView mv = controller.process(paramMap);

주소값에 따라 value에 저장되어있는 컨트롤러(ex> MemberListControllerV3에서 저장한 viewName을 반환해준다(안에 값이 있으면 같이 보내준다(컨트롤러의 기능에 따라 저장된 값들)

String viewName = mv.getViewName();

이 부분이 위의 mv에 저장되어있던 값들중 viewName값(save-resultemd)을 가져온다.

MyView view = viewResolver(viewName);

이곳에서 전체적인 경로(/WEB-INF/views/ + viewName + .jsp)를 조합해서 리턴할 풀 경로를 만들어준다.

view.render(mv.getModel(), request, response);

이 부분이 제일 이해가 안가는 부분입니다.

모델에 있는 값들을 꺼내서 request에 담아서 jsp쪽으로 보내주는 내용인데..

render를 할 때 mv.getModel() 이 값에 모델 정보들을 넘겨주는데 getModel이라는 정보가 위에서 controller.process(paramMap)의 컨트롤러에서 process메소드를 실행해서 넣어준 mv.getModel().put() 값을 말하는게 맞는거죠?

그렇게 만들어준 값들을 view 화면에 넘겨주기 위해서 render를 할 때 mv.getModel정보를 같이 render에 넘겨줘서 render에서는 해당 값들을 뽑아서 request값에 setAttribute로 key, value로 넣어줘야 jsp 파일에서 쉽게 사용을 할 수 있기 때문에 render에서 request에 담아서 화면단으로 넘겨주는게 맞는거죠??

정리가 안되는 부분이 있어서 문의글을 적으면서 차근차근 글을 적다보니 대략적으로 이런식으로 흘러가는거구나.. 하고 감이 잡히는 것 같은데 제가 이해하고 있는 부분이 맞는건지, 아니면 놓치는 부분이 있는지 궁금합니다.

 

springMVC

Quiz

프론트 컨트롤러 패턴에서 클라이언트의 모든 요청을 가장 먼저 받아 처리하는 역할을 하는 것은 무엇일까요?

특정 컨트롤러

데이터베이스

프론트 컨트롤러 서블릿

뷰 템플릿

Answer 1

1

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 아버지님

생각하신 내용이 맞습니다.

공부하시고 잘 정리가 안되면 한번 정도 정리하면서 복습하시면 쉽게 이해가 되실거에요.

감사합니다.

holykhd님의 프로필 이미지
holykhd
Questioner

답변 감사합니다.^^

맞게 이해하고 있다니 다행이네요^^;

질문을 할려고 내용을 차근차근 정리하다보면 의도치않게 자문 자답을 할 때가 있기는 하더라구요.

그럴때는 은근히 뿌듯하기도 하고, 맞게 이해하고 있는지 확인만 하는 차원에서도 조금이라도 궁금하거나 이해가 안가는 부분이 있으면 정리하면서 질문글을 올리는것도 좋은 것 같네요^^

holykhd's profile image
holykhd

asked

Ask a question