Skip to end of metadata
Go to start of metadata

As of SiteMesh 2.0.2 Freemarker (.ftl) decorators are supported.

Here is an example of how such a decorator might look like:


Download Freemarker 2.3 (recommended) and copy it into WEB-INF/lib. The SiteMesh distribution comes with freemarker.jar v2.3rc3.

Add the following to WEB-INF/web.xml within the <web-app> tag:

Modify decorators.xml to reference a .dec file.


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

Basic context attributes

It makes all request, request parameters, session, and servlet context attributes available to templates through Request, RequestParameters, Session, and Application variables. For example :

The scope variables are also available via automatic scope discovery. That is, writing Application.attrName, Session.attrName, Request.attrName is not mandatory; it's enough to write attrName, and if no such variable was created in the template, it will search the variable in Request, and then in Session, and finally in Application.

It creates a variable with name JspTaglibs, that can be used to load JSP taglibs. For example:

Sitemesh context attributes




Parsed page title (<title>...<title>)


Parsed page head


Parsed page body


SiteMesh's internal Page object

  • No labels