Alfredo Osorio
Alfredo Osorio

Reputation: 11475

Is it possible to decorate more than once in Sitemesh?

I'm trying to do something like this: the layout

For all the requests to /admin/* I need the page to be decorated using the B decorator but also that B decorator has to be included in the content of A decorator which is main application layout.

How can I do that with Sitemesh?

Is it even possible? Or do I have to repeat the same layout from A in the B decorator?

Thanks in advance

Upvotes: 9

Views: 1825

Answers (2)

cburgmer
cburgmer

Reputation: 2220

Here's the example using freemarker:

<#assign decorator = JspTaglibs["http://www.opensymphony.com/sitemesh/decorator"]/>
<#assign page = JspTaglibs["http://www.opensymphony.com/sitemesh/page"]/>
<@page.applyDecorator name="a">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Decorator B</title>
    <@decorator.head/>
</head>
<body id="page-home">
    This is a test.
</body>
</html>
</@page.applyDecorator>

Upvotes: 0

Alfredo Osorio
Alfredo Osorio

Reputation: 11475

To answer my own question. Yes it is possible:

Using my own example, this is decorator b being decorated by decorator a.

<page:applyDecorator name="a">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Decorator B</title>
    <decorator:head/>
</head>
<body id="page-home">
    This is a test.
</body>
</html>
</page:applyDecorator>

Upvotes: 15

Related Questions