17-V5. DispatcherServlet → ThymeleafView: render(model)
실제 뷰 렌더링 시작점은 DispatcherServlet의 render(...) 메서드가 view.render(...)를 호출하는 순간입니다.
이번 단계의 역할
준비된 모델과 요청/응답 객체를 View 구현체로 넘겨, 실제 템플릿 렌더링을 시작하는 단계입니다.
호출 흐름 요약
- DispatcherServlet이 View 객체를 확보합니다.
response.setLocale(...)등 기본 응답 준비를 합니다.view.render(mv.getModelInternal(), request, response)를 호출합니다.- ThymeleafView가 템플릿 처리로 들어갑니다.
호출 흐름 다이어그램
sequenceDiagram
participant DS as DispatcherServlet
participant View as ThymeleafView
DS->>View: render(model, request, response)
핵심 코드
// DispatcherServlet.java
if (mv.getStatus() != null) {
response.setStatus(mv.getStatus().value());
}
view.render(mv.getModelInternal(), request, response);
코드 해설
이 단계부터는 Spring MVC 핵심 흐름이 아니라 View 구현체 내부 로직이 주도권을 가집니다. 즉 DispatcherServlet은 “누가 렌더링할지”까지만 결정하고 실제 HTML 생성은 View에게 맡깁니다.
설계 의도
프론트 컨트롤러는 응답 전략 선택만 하고, 실제 렌더링 구현은 View 객체에 위임해 책임을 분리한 구조입니다.
다음 단계 연결
다음 문서 17-V6에서는 ThymeleafView.render(...) 내부에서 TemplateEngine.process(...)가 호출되는 장면을 봅니다.
← 이전: 17-V4. ViewResolver → DispatcherServlet: ThymeleafView 반환 | 다음: 17-V6. ThymeleafView → TemplateEngine