inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Model 추가 - v3

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

393

인프러너

작성한 질문수 58

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에 담아서 화면단으로 넘겨주는게 맞는거죠??

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

 

spring MVC

답변 1

1

김영한

안녕하세요. 아버지님

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

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

감사합니다.

0

인프러너

답변 감사합니다.^^

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

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

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

servlet과 container에 대한 질문입니다

0

21

1

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

0

62

1

jsp 의존성 수정 요청

0

75

2

요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?

0

142

1

save() 메서드 문의

0

65

1

절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상

0

99

1

request-body-json

0

83

2

MVC 패턴의 적용 단위

0

94

1

RequestMapping을 이용한 핸들러, 어댑터

0

118

2

save 후 결과화면

0

86

2

jsp를 이용한 view

0

97

1

application.properties에 debug 추가해도 결과가 똑같습니다.

0

175

1

수업 코드 제공 관련 문의

0

97

2

RequestMappingHandlerAdapter의 Controller 호출 과정

0

98

3

파일 오픈 시

0

68

1

스프링 배치 관련

0

77

1

@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부

0

112

1

postman으로 /request-body-json-v1 호출시 500 error

0

94

1

프론트엔드와 백엔드의 mvc, rest api에 대한 질문

0

77

1

모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문

0

111

1

console log 출력 관련 질문입니다.

0

73

1

애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ

0

138

1

html 변경하는 부분 적용 문제

0

100

1

한글 깨짐

0

76

2