On Mon, Aug 29, 2011 at 1:13 PM, Antonio Petrelli <
[email protected]> wrote:

> 2011/8/29 Rick R <[email protected]>
>
> > What is driving me crazy though is "How would you accomplish this
> "without"
> > using cascade='true' ?" (In fact I think the application I'll eventually
> > have to integrate with is using a very old version of Tiles (1?) that
> > doesn't have cascade? )
> >
> > You mentioned above "Either you define a new definition that uses
> > plainBody.jsp... ," which I 'think'  I did in the above pastie with
> > "plain.body" and 'standard.body' definitions, but if I give it an
> attribute
> > of content which I expected to be overridden, it's not overridden. As an
> > example in the below I'll end up with "foo bar 2" as the content instead
> of
> > the 'signup' definition put-attribute content (if I remove cascade = true
> > on
> > the signup put-attribute .)
> >
> > <definition name="plain.body"
> > templateExpression="/WEB-INF/layouts/plainBody.jsp">
> >     <put-attribute name="content" value="foo bar 2"/> <!-- never really
> > overridden ??? -->
> > </definition>
> >
>
> Probably, anonymous nested definitions best fits your needs:
>
> http://tiles.apache.org/2.2/framework/tutorial/advanced/nesting-extending.html#Anonymous_nested_definitions
>
>


I tried that at first, but didn't have any luck. Here is how I set it up,
but the problem is "content" in plainBody.jsp is not overridden in pageBody.
You'll see OVERRIDE ME show up, and without that put-attribute it complains
that it's needed.


<definition name="plainLayout"
templateExpression="/WEB-INF/layouts/page.jsp">
<put-attribute name="title" value="My App" />
 <put-attribute name="pageBody">
<definition templateExpression="/WEB-INF/layouts/plainBody.jsp">
 <put-attribute name="content" value="OVERRIDE ME"/>
</definition>
 </put-attribute>
</definition>

<definition name="signup" extends="plainLayout">
 <put-attribute name="content" value="/WEB-INF/views/signup/signup.jsp"/>
</definition>



-- 
Rick R

Reply via email to