KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > opensymphony > module > sitemesh > HTMLPage


1 /*
2  * Title: HTMLPage
3  * Description:
4  *
5  * This software is published under the terms of the OpenSymphony Software
6  * License version 1.1, of which a copy has been included with this
7  * distribution in the LICENSE.txt file.
8  */

9
10 package com.opensymphony.module.sitemesh;
11
12 import java.io.IOException JavaDoc;
13 import java.io.Writer JavaDoc;
14
15 /**
16  * Extension of {@link com.opensymphony.module.sitemesh.Page} providing access to HTML data.
17  *
18  * <p>The page is parsed and the <code>&lt;title&gt;</code>, <code>&lt;head&gt;</code>
19  * (minus the <code>&lt;title&gt;</code>) and <code>&lt;body&gt;</code> are split
20  * into chunks. These can then be used by a {@link com.opensymphony.module.sitemesh.Decorator}.
21  * Properties are also extracted from the HTML.</p>
22  *
23  * <h2>Page Properties</h2>
24  *
25  * <p>When the page is parsed, values from certain tags are added to the properties
26  * to allow easy access to them. The following tags have properties extracted from them.</p>
27  *
28  * <ul>
29  * <li>
30  * <b>HTML Tag</b><br>
31  * All attributes of the <code>&lt;html&gt;</code>
32  * tag shall be added as properties.
33  * </li>
34  * <li>
35  * <b>TITLE Tag</b><br>
36  * The contents of the <code>&lt;title&gt;</code> tag
37  * shall be added as the <code>title</code> property.
38  * </li>
39  * <li>
40  * <b>META Tags</b><br>
41  * All the <code>&lt;meta&gt;</code> tags with
42  * <code>name</code> and <code>content</code> attributes
43  * will be added with the <code>meta</code> prefix.
44  * </li>
45  * <li>
46  * <b>BODY Tag</b><br>
47  * All attributes of the <code>&lt;body&gt;</code> tag
48  * shall be added as properties with the
49  * <code>body</code> prefix.
50  * </li>
51  * </ul>
52  * <h4>Example</h4>
53  * <pre>
54  * <xmp>
55  * <html template="funky">
56  * <head>
57  * <title>My Funky Page</title>
58  * <meta name="description" content="Description of my page.">
59  * <meta name="author" content="Bob">
60  * ...
61  * </head>
62  * <body text="#ff00ff" bgcolor="green">
63  * ...
64  * </body>
65  * </html>
66  * </xmp>
67  * template=funky
68  * title=My Funky Page
69  * meta.description=Description of my page.
70  * meta.author=Bob
71  * body.text=#ff00ff
72  * body.bgcolor=green
73  * </pre>
74  *
75  * @author <a HREF="mailto:joe@truemesh.com">Joe Walnes</a>
76  * @version $Revision: 1.3 $
77  */

78 public interface HTMLPage extends Page {
79
80     /**
81      * Write the contents of the <code>&lt;head&gt;</code> tag.
82      */

83     void writeHead(Writer JavaDoc out) throws IOException JavaDoc;
84
85     /**
86      * Convenience method to return the contents of the <code>&lt;head&gt;</code> tag as a String.
87      *
88      * @since 2.1.1
89      * @see #writeHead(java.io.Writer)
90      */

91     String JavaDoc getHead();
92
93     /**
94      * Check to see if this page contains an
95      * <a HREF="http://www.w3.org/TR/html4/present/frames.html">HTML frameset</a>.
96      */

97     boolean isFrameSet();
98
99     /**
100      * Marks this page as a frameset.
101      *
102      * @since 2.3
103      * @see #isFrameSet()
104      */

105     void setFrameSet(boolean frameset);
106     
107 }
Popular Tags