2008/10/6 dcosio <[EMAIL PROTECTED]>:
>
> Using Struts 2.0.11.2, Spring 2.5.2, tiles 2.0.4.

First of all, you't better upgrade to Tiles 2.0.6.

> I searched the forum a bit and found a post that sort explained the problem
> I'm having. It seem that since my extends are going more than 3 deep is the
> problem(it wasn't a problem in tiles1).

No, it's not your problem.

>        <tiles:insertAttribute name="pageContent">
>            <tiles:putAttribute name="pageContent"  ><tiles:getAsString
> name="contentPane"   ignore="true"/></tiles:putAttribute>
>...

This piece of code does not work, since the <tiles:getAsString> does
not get an attribute from the context "outside" the
<tiles:insertAttribute>, but from a new context created with the
opening of the <tiles:insertAttribute> itself.
I think that you want to "pass through" the attributes from a template
to an inner template, right?

To fix it, you have three choices:
1. Use <tiles:importAttribute> to import attributes and then use it in
<tiles:putAttribute>

For example:

<tiles:importAttribute name="pageContent">
...
<tiles:insertAttribute name="pageContent">
       <tiles:putAttribute name="pageContent"  value="${pageContent}" />
....

2. Refactor your definitions (best choice with Tiles 2.0.x) to create
an inner definition and put it instead, so add a new level of nested
definitions.

3. Use Tiles 2.1 "cascaded" attributes: you can define an attribute
that cascades at all nested levels of attributes (documentation under
development).

Let me know how it goes.
Antonio

Reply via email to