1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.tiles.velocity.template;
23
24 import java.io.IOException;
25 import java.io.Writer;
26 import java.util.Map;
27
28 import javax.servlet.ServletContext;
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31
32 import org.apache.tiles.servlet.context.ServletUtil;
33 import org.apache.tiles.template.InsertTemplateModel;
34 import org.apache.tiles.velocity.context.VelocityUtil;
35 import org.apache.velocity.context.Context;
36 import org.apache.velocity.context.InternalContextAdapter;
37 import org.apache.velocity.runtime.Renderable;
38
39 /***
40 * Wraps {@link InsertTemplateModel} to be used in Velocity. For the list of
41 * parameters, see
42 * {@link InsertTemplateModel#start(org.apache.tiles.TilesContainer, Object...)}
43 * , {@link InsertTemplateModel#end(org.apache.tiles.TilesContainer,
44 * String, String, String, String, String, Object...)} and
45 * {@link InsertTemplateModel#execute(org.apache.tiles.TilesContainer,
46 * String, String, String, String, String, Object...)}.
47 *
48 * @version $Rev: 901361 $ $Date: 2010-01-20 21:10:27 +0100 (mer, 20 gen 2010) $
49 * @since 2.2.0
50 * @deprecated Use Velocity directives.
51 */
52 @Deprecated
53 public class InsertTemplateVModel implements Executable, BodyExecutable {
54
55 /***
56 * The template model.
57 */
58 private InsertTemplateModel model;
59
60 /***
61 * The Servlet context.
62 */
63 private ServletContext servletContext;
64
65 /***
66 * Constructor.
67 *
68 * @param model The template model.
69 * @param servletContext The servlet context.
70 * @since 2.2.0
71 */
72 public InsertTemplateVModel(InsertTemplateModel model,
73 ServletContext servletContext) {
74 this.model = model;
75 this.servletContext = servletContext;
76 }
77
78 /*** {@inheritDoc} */
79 public Renderable execute(HttpServletRequest request,
80 HttpServletResponse response, Context velocityContext,
81 Map<String, Object> params) {
82 return new AbstractDefaultToStringRenderable(velocityContext, params, response, request) {
83
84 public boolean render(InternalContextAdapter context, Writer writer)
85 throws IOException {
86 model.execute(ServletUtil.getCurrentContainer(request,
87 servletContext), (String) params.get("template"),
88 (String) params.get("templateType"), (String) params
89 .get("templateExpression"), (String) params.get("role"),
90 (String) params
91 .get("preparer"), velocityContext, request, response,
92 writer);
93 return true;
94 }
95 };
96 }
97
98 /*** {@inheritDoc} */
99 public Renderable end(HttpServletRequest request, HttpServletResponse response,
100 Context velocityContext) {
101 Map<String, Object> params = VelocityUtil.getParameterStack(
102 velocityContext).pop();
103 return new AbstractDefaultToStringRenderable(velocityContext, params, response, request) {
104
105 public boolean render(InternalContextAdapter context, Writer writer)
106 throws IOException {
107 model.end(ServletUtil.getCurrentContainer(request,
108 servletContext), (String) params.get("template"),
109 (String) params.get("templateType"), (String) params
110 .get("templateExpression"), (String) params.get("role"),
111 (String) params
112 .get("preparer"), velocityContext, request, response,
113 writer);
114 return true;
115 }
116 };
117 }
118
119 /*** {@inheritDoc} */
120 public void start(HttpServletRequest request, HttpServletResponse response,
121 Context velocityContext, Map<String, Object> params) {
122 VelocityUtil.getParameterStack(velocityContext).push(params);
123 model.start(ServletUtil.getCurrentContainer(request, servletContext),
124 velocityContext, request, response);
125 }
126 }