SiteMesh 2: Official repository
** OpenSymphony SiteMesh 2.5 **
SiteMesh is a web-page layout system that can be used to abstract common look and feel from the functionality of a web-application and to assemble large webpages from smaller components. Pages and components can have meta-data extracted from them (such as body, title and meta-tags) which can be used by decorators (skins) that are applied.
SiteMesh won't tread on your toes or force you to work in a certain way (except for cleaner) - you install and carry on working as before. It seamlessly fits in with existing frameworks.
Forget the hype - just try it! You'll be impressed with how it can simplify things.
The latest version of SiteMesh can be obtained from:
SiteMesh requires a Java Servlet container conforming to the Servlet 2.3 specification. Versions prior to 2.3 are not enough.
Currently known containers that support this and SiteMesh was tested with:
Copy [email protected]@.jar to the WEB-INF/lib/ directory of your web-app.
OPTIONAL: Copy sitemesh.xml to the WEB-INF/ directory if you need to specify a custom decorator mapper configuration then the default configuration.
Add the following to WEB-INF/web.xml:
Ok, let's assume you have some basic JSPs already on the site. These should contain vanilla HTML.
If you don't, here's a JSP to get you started (test.jsp).
<title>Hello world</title> <p>Today is .</p>
Once you have some content (preferably more imaginative than the example above), a decorator should be created (decorator.jsp).
<title>My Site - <title default="Welcome!"></title>
Now you need tell SiteMesh about that decorator and when to use it. Create the file WEB-INF/decorators.xml:
<decorator name="mydecorator" page="/decorator.jsp"> <pattern>/*</pattern> </decorator>
Access your original JSP (test.jsp) though your web-browser and it should look pretty normal. Now if you add some styling to your decorator it shall automatically be applied to all the other pages in your web-app.
You can define as many decorators as you want in decorators.xml. Example:
<decorator name="default" page="default.jsp"> <pattern>/*</pattern> </decorator> <decorator name="anotherdecorator" page="decorator2.jsp"> <pattern>/subdir/*</pattern> </decorator> <decorator name="htmldecorator" page="html.jsp"> <pattern>*.html</pattern> <pattern>*.htm</pattern> </decorator> <decorator name="none"> <!-- These files will not get decorated. --> <pattern>/anotherdir/*</pattern> </decorator>
You get the idea. Play around. See the SiteMesh website for full documentation.
Thank these guys: * Mathias Bogaert [email protected] * Mike Cannon-Brookes [email protected] * Victor Salaman [email protected] * Joseph Ottinger [email protected] * Hani Suleiman [email protected] * Scott Farquhar [email protected] * James Roper [email protected] * Matt Quail [email protected] * Charles Miller [email protected]
- Joe Walnes