File: velocity-decorators.html

package info (click to toggle)
sitemesh 2.4.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,792 kB
  • sloc: java: 6,708; xml: 551; jsp: 393; perl: 64; makefile: 11
file content (115 lines) | stat: -rw-r--r-- 4,688 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<html>
    <head>
        <title>Velocity Decorators</title>
    </head>

    <body>
        As of SiteMesh 2.0.2 <a href="http://jakarta.apache.org/velocity/">Velocity</a> (.vm)
        decorators are supported.

        <p>Here is an example of how such a decorator (e.g. /decorators/main.vm) might look like:</p>

<pre style="border: 1px solid #999999; padding: 5px">
#parse ("/includes/decorators/header.vm")
    &lt;h2&gt;<b>$title</b>&lt;/h2&gt;
    <b>$head</b>
    &lt;img src="<b>$base</b>/images/logo.gif" border="0"&gt;
    &lt;td valign="top" class="body"&gt;
        &lt;div class="header"&gt;
            &lt;span class="pagetitle"&gt;<b>$title</b>&lt;/span&gt;
        &lt;/div&gt;
        <b>$body</b>
    &lt;/td&gt;
#parse ("/includes/decorators/footer.vm")
</pre>

        <h3>Installation</h3>

        <ul>

        	<li>Download <a
        	href="http://jakarta.apache.org/velocity/">Velocity</a> 1.3.1 or
        	higher and copy it into <b><code>[web-app]/WEB-INF/lib</code></b>.
        	The SiteMesh distribution comes with <b>velocity-dep-1.3.1.jar</b>.</p></li>

        	<li>Download <a
        	href="http://jakarta.apache.org/velocity/tools/">VelocityTools</a> 1.1
        	and copy it into <b><code>[web-app]/WEB-INF/lib</code></b>.
        	The SiteMesh distribution comes with <b>velocity-tools-view-1.1.jar</b>.</p></li>

			<li>Download <a
        	href="http://jakarta.apache.org/commons/collections/">Commons Collections</a> 2.1 or
        	higher and copy it into <b><code>[web-app]/WEB-INF/lib</code></b>.
        	The SiteMesh distribution comes with <b>commons-collections.jar</b>.</p></li>

        	<li>Add the following to <b><code>[web-app]/WEB-INF/web.xml</code></b>
        	within the <b><code>&lt;web-app&gt;</code></b> tag:</li>
       	</ul>

<pre style="border: 1px solid #999999; padding: 5px">
&lt;servlet&gt;
    &lt;servlet-name&gt;<b>sitemesh-velocity</b>&lt;/servlet-name&gt;
    &lt;servlet-class&gt;<b>com.opensymphony.module.sitemesh.velocity.VelocityDecoratorServlet</b>&lt;/servlet-class&gt;
&lt;/servlet&gt;

&lt;servlet-mapping&gt;
    &lt;servlet-name&gt;sitemesh-velocity&lt;/servlet-name&gt;
    &lt;url-pattern&gt;<b>*.vm</b>&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
</pre>

		<ul>
			<li>Modify <b><code>decorators.xml</code></b> to reference a .vm
			decorator.</li>
		</ul>

		<p>A working example is included with the SiteMesh distribution, under the <a href="https://sitemesh.dev.java.net/source/browse/sitemesh/src/example-webapp/">src/example-webapp</a> directory.</p>

		<h3>Context</h3>

		VelocityDecoratorServlet puts some things into the context object that you should be aware of:

		<table border="0" cellspacing="10">
		    <tr>
		        <td valign="top"><strong>$request</strong> (from <a href="http://jakarta.apache.org/velocity/tools/javadoc/org/apache/velocity/tools/view/servlet/VelocityViewServlet.html">VelocityViewServlet</a>)</td>
		        <td>The HttpServletRequest object</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$response</strong> (from <a href="http://jakarta.apache.org/velocity/tools/javadoc/org/apache/velocity/tools/view/servlet/VelocityViewServlet.html">VelocityViewServlet</a>)</td>
		        <td>The HttpServletResponse object</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$session</strong> (from <a href="http://jakarta.apache.org/velocity/tools/javadoc/org/apache/velocity/tools/view/servlet/VelocityViewServlet.html">VelocityViewServlet</a>)</td>
		        <td>The HttpSession object</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$application</strong> (from <a href="http://jakarta.apache.org/velocity/tools/javadoc/org/apache/velocity/tools/view/servlet/VelocityViewServlet.html">VelocityViewServlet</a>)</td>
		        <td>The ServletContext object</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$base</strong></td>
		        <td>request.getContextPath()</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$title</strong></td>
		        <td>Parsed page title (&lt;title&gt;...&lt;title&gt;)</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$head</strong></td>
		        <td>Parsed page head</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$body</strong></td>
		        <td>Parsed page body</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>$page</strong></td>
		        <td>SiteMesh's internal Page object</td>
		    </tr>
		    <tr>
		        <td valign="top"><strong>Anything else</strong></td>
		        <td>Search for the attribute by that name in the request, session and application scopes</td>
            </tr>
		</table>
	</body>
</html>