11package config ;
22
3+ import app .handler .HomeHandler ;
34import app .handler .LoginWithPost ;
45import app .handler .RegisterWithGet ;
56import app .handler .RegisterWithPost ;
2223import web .filter .*;
2324import web .handler .StaticContentHandler ;
2425import web .handler .WebHandler ;
26+ import web .renderer .DynamicViewRenderer ;
2527import web .renderer .HttpResponseRenderer ;
2628import web .renderer .RedirectRenderer ;
2729import web .renderer .StaticViewRenderer ;
30+ import web .renderer .view .ExpressionResolver ;
2831import web .session .SessionStorage ;
32+ import web .renderer .view .TemplateEngine ;
33+ import web .renderer .view .TemplateLoader ;
2934
3035import java .util .List ;
3136
@@ -84,8 +89,8 @@ public List<WebHandler> webHandlerList() {
8489 staticContentHandler (),
8590 registerWithGet (),
8691 registerWithPost (),
87- loginWithPost ()
88- )
92+ loginWithPost (),
93+ homeHandler () )
8994 );
9095 }
9196
@@ -115,13 +120,18 @@ public LoginWithPost loginWithPost() {
115120 () -> new LoginWithPost (sessionStorage ()));
116121 }
117122
123+ public HomeHandler homeHandler (){
124+ return getOrCreate ("homeHandler" , HomeHandler ::new );
125+ }
126+
118127 // ===== Renderer =====
119128 public List <HttpResponseRenderer > httpResponseRendererList () {
120129 return getOrCreate (
121130 "httpResponseRendererList" ,
122131 () -> List .of (
123132 staticViewRenderer (),
124- redirectRenderer ()
133+ redirectRenderer (),
134+ dynamicViewRenderer ()
125135 )
126136 );
127137 }
@@ -137,6 +147,24 @@ public RedirectRenderer redirectRenderer() {
137147 return getOrCreate ("redirectRenderer" , RedirectRenderer ::new );
138148 }
139149
150+ public DynamicViewRenderer dynamicViewRenderer () {
151+ return getOrCreate ("dynamicViewRenderer" ,
152+ () -> new DynamicViewRenderer (templateEngine ()));
153+ }
154+
155+ // ===== ViewEngine =====
156+ public TemplateEngine templateEngine () {
157+ return getOrCreate ("templateEngine" ,
158+ () -> new TemplateEngine (templateLoader (), expressionResolver ()));
159+ }
160+
161+ public ExpressionResolver expressionResolver (){
162+ return getOrCreate ("expressResolver" , ExpressionResolver ::new );
163+ }
164+
165+ public TemplateLoader templateLoader () {
166+ return getOrCreate ("templateLoader" , TemplateLoader ::new );
167+ }
140168
141169 // ===== Adapter =====
142170 public List <HandlerAdapter > handlerAdapterList () {
@@ -164,7 +192,6 @@ public DefaultHandlerAdapter defaultHandlerAdapter() {
164192 DefaultHandlerAdapter ::new
165193 );
166194 }
167-
168195 // ===== Resolver =====
169196 public List <ArgumentResolver <?>> argumentResolverList () {
170197 return getOrCreate (
0 commit comments