Hi, how do I create layout tile hierarchies so that one layout extends another and contributes additional content to it? What I'd like to have is a base layout which contains markup common to every page, and then 'child' layouts that extned the base layout and add section-specific additional markup. Page tiles would then use the 'child' layout to get the page and section layout rendered. Something like this:

    <definition name="/base.layout" path="/pages/base/layout.jsp">
        <put name="title" value="PAGE TITLE"/>
    </definition>

<definition name="/section.layout" extends="/base.layout" path="/pages/section/layout.jsp">
<put name="title" value="The Section Title"/>
<put name="secion-name" value="SECTION NAME"/>
</definition>


    <definition name="/section.view" extends="/section.layout">
        <put name="section-name" value="The Section Name"/>
        <put name="content" value="/pages/section/view.jsp"/>
    </definition>

That's how I tried to set it up, but the 'path' attribute on /section.layout overrides the 'path' attribute on /base.layout, so the content of /pages/base/layout.jsp isn't rendered. Also, the implicit 'content' attribute used by /pages/base/layout.jsp and /pages/section/layout.jsp conflict. I also tried this:

    <definition name="/base.layout" path="/pages/base/layout.jsp">
        <put name="title" value="PAGE TITLE"/>
    </definition>

    <definition name="/section.layout" extends="/base.layout">
        <put name="title" value="The Section Title"/>
        <put name="secion-name" value="SECTION"/>
        <put name="content" path="/pages/section/layout.jsp"/>
    </definition>

    <definition name="/section.view" extends="/section.layout">
        <put name="secion-name" value="The Section Name"/>
        <put name="section-content" value="/pages/section/view.jsp"/>
    </definition>

but that didn't work as the 'section-name' attribute isn't defined in the tiles context available to /pages/section/layout.jsp. Moving the 'put' for the 'content' attribute down into the /section.view definition doesn't seem to help; I get the same error.

Logically, I'm looking for something like this:

+---------------+           +----------------------+
| /base.layout  |           | /section.layout      |
|---------------|           |----------------------|
| title: String | includes  | title: String        |
| content: JSP  |---------->| section-name: String |
+---------------+           | section-content: JSP |
                            |----------------------|
                            | title = "The Se..."  |
                            | content = /path/...  |
                            +----------------------+
                                    |
                                    | includes
                                    |
                                    V
                         +-----------------------------+
                         | /section.view               |
                         |-----------------------------|
                         | section-name = "The se      |
                         | section-content = /path/... |
                         +-----------------------------+

Is what I'm trying to do possible? Is my objective clear from the above? I can put together a more complete demo if necessary.

L.


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to