17-V6. ThymeleafView → TemplateEngine: process()
ThymeleafView는 모델과 요청 정보를 모은 뒤, 최종적으로 TemplateEngine.process(...)를 호출해 템플릿을 HTML로 변환합니다.
이번 단계의 역할
뷰 객체 내부에서 실제 템플릿 엔진 실행이 시작되는 핵심 단계입니다.
호출 흐름 요약
- ThymeleafView가
mergedModel과WebExpressionContext를 준비합니다. - 응답 content type과 writer를 세팅합니다.
viewTemplateEngine.process(...)를 호출합니다.- 템플릿 엔진이 HTML 조각을 writer에 씁니다.
호출 흐름 다이어그램
sequenceDiagram
participant View as ThymeleafView
participant Engine as TemplateEngine
participant Writer
View->>Engine: process(templateName, context, writer)
Engine-->>Writer: HTML output
핵심 코드
// ThymeleafView.java
final Writer templateWriter =
(producePartialOutputWhileProcessing ? response.getWriter() : new FastStringWriter(1024));
viewTemplateEngine.process(templateName, processMarkupSelectors, context, templateWriter);
// TemplateEngine.java
templateEngine.process("mytemplate", ctx, httpServletResponse.getWriter());
코드 해설
ThymeleafView는 단순히 템플릿 이름만 넘기는 것이 아니라, 모델·로케일·표현식 컨텍스트·writer까지 모두 준비한 뒤 엔진을 호출합니다. 그래서 템플릿 엔진은 웹 요청 문맥을 이해한 상태에서 렌더링할 수 있습니다.
설계 의도
View 계층에서 웹 문맥을 조립하고, 템플릿 엔진은 렌더링만 담당하게 하려는 분리 구조입니다.
다음 단계 연결
다음 문서 17-V7에서는 템플릿 엔진이 만든 HTML이 어떻게 다시 DispatcherServlet 흐름으로 복귀하는지 봅니다.
← 이전: 17-V5. DispatcherServlet → ThymeleafView | 다음: 17-V7. ThymeleafView → DispatcherServlet: HTML 반환