1 package org.apache.velocity.tools.view.jsp;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import javax.servlet.http.HttpServletRequest;
23 import javax.servlet.http.HttpServletResponse;
24 import javax.servlet.jsp.PageContext;
25 import org.apache.velocity.app.VelocityEngine;
26 import org.apache.velocity.tools.view.ViewToolContext;
27
28
29
30
31
32
33
34 public class JspToolContext extends ViewToolContext
35 {
36 public static final String PAGE_CONTEXT_KEY = "pageContext";
37
38 private final PageContext pageContext;
39
40 public JspToolContext(VelocityEngine velocity,
41 PageContext pageContext)
42 {
43 super(velocity,
44 (HttpServletRequest)pageContext.getRequest(),
45 (HttpServletResponse)pageContext.getResponse(),
46 pageContext.getServletContext());
47
48 this.pageContext = pageContext;
49 }
50
51 protected void putToolProperties()
52 {
53 putToolProperty(PAGE_CONTEXT_KEY, getPageContext());
54
55 super.putToolProperties();
56 }
57
58 public PageContext getPageContext()
59 {
60 return this.pageContext;
61 }
62
63 protected Object getServletApi(String key)
64 {
65 if (key.equals(PAGE_CONTEXT_KEY))
66 {
67 return getPageContext();
68 }
69 return super.getServletApi(key);
70 }
71
72 public Object getAttribute(String key)
73 {
74 Object o = getPageContext().getAttribute(key);
75 if (o == null)
76 {
77 o = super.getAttribute(key);
78 }
79 return o;
80 }
81 }