Oh yes, to be sure it did.
In fact, starting with the tutorial on "Nesting and Extension" it seemed
quite natural to do that.
If that was an "unintentional feature" I happened to uncover - what a pity.

But thanks a lot for your patience, I'll follow that JIRA-link.

Cheers, Marcus


Antonio Petrelli-3 wrote:
> 
> Do you mean that your example worked? :-O
> If yes, it was a bug, or better an unintentional feature :-)
> There is a JIRA issue to support "pass through" attributes, if you are
> interested:
> https://issues.apache.org/struts/browse/TILES-208
> 
> Antonio
> 
> 2007/10/8, Marcus Oenicke <[EMAIL PROTECTED]>:
>>
>> Err...sorry if you found my post confusing.
>>
>> Let me give you an example.
>> I had the following definitions working with Struts 2.0.6 and its Tiles
>> plug-in.
>>
>> A "master" template for the basic layout:
>>
>> <definition name="main" template="/jsp/templates/main.jsp">
>>         <put-attribute name="header" type="definition" value="hv.header"
>> />
>>         <put-attribute name="page.title" type="string" value="" />
>>         <put-attribute name="contentarea" type="template"
>> value="/jsp/tiles/blank.jsp" />
>>         <put-attribute name="footer" type="definition" value="hv.footer"
>> />
>> </definition>
>>
>> A basic header definition:
>>
>> <definition name="header" template="/jsp/templates/header.jsp">
>>         <put-attribute name="header.text" type="string"
>> value="Application Name" />
>>         <put-attribute name="header.title" type="string" value="" />
>> </definition>
>>
>> A specialized layout for simple input forms extending "main":
>>
>> <definition name="form.simple" extends="main">
>>         <put-attribute name="intro.header" value="" />
>>         <put-attribute name="intro.text" value="" />
>>         <put-attribute name="contentarea" type="template"
>> value="/jsp/templates/form-simple.jsp" />
>>         <put-attribute name="form.body" type="template"
>> value="/jsp/tiles/blank.jsp" />
>> </definition>
>>
>> It overwrites the attribute "contentarea" from definition "main" with a
>> more
>> specialized template which in turn adds the attributes "intro.header",
>> "intro.text" and "form.body".
>>
>> And finally I defined a login page by extending "form.simple":
>>
>> <definition name="login" extends="form.simple">
>>         <put-attribute name="header.title" type="string" value="Login" />
>>         <put-attribute name="page.title" type="string" value="Login" />
>>         <put-attribute name="intro.header" type="string" value="Please
>> login" />
>>         <put-attribute name="form.body" type="template"
>> value="/jsp/tiles/login.jsp" />
>> </definition>
>>
>> This one overwrites "header.title" from definition "header", "page.title"
>> from definition "main", "intro.header" and "form.body" from definition
>> "form.simple".
>>
>> However, with Struts 2.0.9 and its Tiles plug-in (which is equivalent to
>> v
>> 2.0.4) I got the "Attribute not found" error for all attributes of
>> "login",
>> except "page.title", just like Neil.
>>
>> With the help of the example you gave in this thread I rearrangend my
>> definitions as follows (only the changed definitions shown).
>>
>> Definitions "form.simple" does not extend "main" and does not attempt to
>> overwrite its attribute "contentarea", but references the template
>> directly:
>>
>> <definition name="form.simple" template="/jsp/templates/form-simple.jsp">
>>         <put-attribute name="intro.header" value="" />
>>         <put-attribute name="intro.text" value="" />
>>         <put-attribute name="form.body" type="template"
>> value="/jsp/tiles/blank.jsp" />
>> </definition>
>>
>> The "login" definition now extends "main" and uses extra definitions
>> ("login.header" and "login.body") to insert into "main" as tiles:
>>
>> <definition name="login" extends="main">
>>         <put-attribute name="header" type="definition"
>> value="login.header"/>
>>         <put-attribute name="page.title" type="string" value="Login" />
>>         <put-attribute name="contentarea" type="definition"
>> value="login.body" />
>> </definition>
>>
>> This definition fills relevant attributes of definition "header":
>>
>> <definition name="login.header" extends="header">
>>         <put-attribute name="header.title" type="string" value="Login" />
>> </definition>
>>
>> This definition fills relevant attributes of definition "form.simple":
>> <definition name="login.body" extends="form.simple">
>>         <put-attribute name="intro.header" type="string" value="Please
>> login" />
>>         <put-attribute name="form.body" type="template"
>> value="/jsp/tiles/login.jsp" />
>> </definition>
>>
>> It works, but now I need more than one definition per rendered page (like
>> "login").
>> This is the change I was referring to.
>>
>> Marcus
>>
>>
>> Antonio Petrelli-3 wrote:
>> >
>> > 2007/10/8, Marcus Oenicke <[EMAIL PROTECTED]>:
>> >>
>> >>
>> >> Antonio,
>> >> I had the same problem when upgrading from Struts 2.0.6 to Struts
>> 2.0.9.
>> >>
>> >> If I get you right, it breaks down to:
>> >> you can extend templates, but not tiles.
>> >>
>> >> Templates can represent whole pages or parts of them.
>> >> To use templates as tiles (i.e. for a sub-page), you need a separate
>> >> definition to fill the attributes of that template.
>> >> And only such a definition can be used as a tile in the page
>> definition
>> >> which may extend the master template.
>> >> Is that right?
>> >>
>> >> But this behaviour is different to that of the Tiles plugin of Struts
>> >> 2.0.6.
>> >> There it was possible to extend a master template in various levels
>> into
>> >> more specialized templates adding extra attributes and sub-page
>> templates
>> >> on
>> >> the way while being able to overwrite any attribute of any previous
>> >> level.
>> >>
>> >> Is there a special reason for that change?
>> >
>> >
>> >
>> > Err... sorry but I cannot follow you :-O
>> > You can extend *definitions*, but you *cannot* extend templates or
>> > attributes (BTW, probably the concept of "extension" does not make
>> sense
>> > here).
>> > With the extension of a definition you can override attributes and the
>> > template of that definition.
>> > This behaviour has never changed since Struts-Tiles.
>> >
>> > Antonio
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Nesting-tiles-3-levels-deep-not-finding-attribute-tf4179213.html#a13099931
>> Sent from the tiles users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Nesting-tiles-3-levels-deep-not-finding-attribute-tf4179213.html#a13109645
Sent from the tiles users mailing list archive at Nabble.com.

Reply via email to