I'm trying to create a nested layout structure using the Stripes layout
tags, and am running into a problem.
My goal is to have the following:
1. A master layout definition (layout.jsp) that defines the main layout
(header, body, footer). Here, the header, and footer contents are given
default values.
2. A sub-layout definition (layoutWithMenu.jsp) extends layout.jsp, and
decorates the body content by adding a menu at the top.
3. Be able to create renderer pages that can extend either of the layouts
above, be able to override any of the layout-components that they choose,
and also to be able to re-use default content that has been specified by
the layout definition(s) when overriding is not necessary.
In my example files below, pageA.jsp and pageB.jsp are the renderer pages.
They both specify layoutWithMenu.jsp as their layout definition.
LayoutWithMenu.jsp in turn specifies layout.jsp as its layout definition.
Within pageA.jsp, I want to be able to override content for
layout-component "header". But I want to make sure that the default
content for "footer" is still rendered and not overridden.
Within pageB.jsp, I want to be able to override the layout-component
"footer" and let the default content render for "header".
I can't find a way to conditionally pass the overridden layout-components
through layoutWithMenu.jsp only when content has actually been specified
by the renderer page. When always passing through all layout-components,
the components that are not actually overridden are blanked out (I guess
they are overridden by a null value?).
Here are my files:
(layout.jsp)
<c:set var="header">
Default header
</c:set>
<c:set var="footer">
Default Footer
</c:set>
<stripes:layout-definition>
<html>
</head>
<body>
${header}
<div>${body}</div>
${footer}
</body>
</html>
</stripes:layout-definition>
(layoutWithMenu.jsp)
<stripes:layout-definition>
<stripes:layout-render name="/WEB-INF/jsp/templates/layout.jsp"
title="${title}"
header="${header}"
footer="${footer}">
<stripes:layout-component name="body">
<div class="menu">
<span class="menu-item">
<stripes:link beanclass="com.MyActionBean"
event="myEvent1">Menu 1</stripes:link>
</span>
<span>|</span>
<span class="menu-item">
<stripes:link beanclass="com.MyActionBean"
event="myEvent2">Menu 2</stripes:link>
</span>
</div>
${body}
</stripes:layout-component>
</stripes:layout-render>
</stripes:layout-definition>
(pageA.jsp)
<stripes:layout-render name="/WEB-INF/jsp/templates/layoutWithMenu.jsp"
title="Page A Title">
<stripes:layout-component name="header">
Page A Header
</stripes:layout-component>
<stripes:layout-component name="body">
Page A Body
</stripes:layout-component>
</stripes:layout-render>
(pageB.jsp)
<stripes:layout-render name="/WEB-INF/jsp/templates/layoutWithMenu.jsp"
title="Page B Title">
<stripes:layout-component name="footer">
Page B footer
</stripes:layout-component>
<stripes:layout-component name="body">
Page B body
</stripes:layout-component>
</stripes:layout-render>
-Chris
*************************** IMPORTANT
NOTE*****************************-- The opinions expressed in this
message and/or any attachments are those of the author and not
necessarily those of Brown Brothers Harriman & Co., its
subsidiaries and affiliates ("BBH"). There is no guarantee that
this message is either private or confidential, and it may have
been altered by unauthorized sources without your or our knowledge.
Nothing in the message is capable or intended to create any legally
binding obligations on either party and it is not intended to
provide legal advice. BBH accepts no responsibility for loss or
damage from its use, including damage from virus.
********************************************************************************------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users