Cannot Pass Blocks to Layout Components
---------------------------------------

                 Key: TAPESTRY-1583
                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1583
             Project: Tapestry
          Issue Type: Bug
    Affects Versions: 5.0.4
            Reporter: Jeremy F. Kassis


As per http://tapestry.apache.org/tapestry5/tapestry-core/guide/templates.html, 
the template of a page that calls a layout component must look like this:

<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
  My Page Specific Content
</t:layout>

The layout component looks like this:
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
    <head>
        <title>My Tapestry Application</title>
    </head>
    <body>
        <t:body/>
    </body>
</html>

If I want a more sophisticated layout that renders blocks passed as parameters 
instead of just a body, i'd be tempted to try this:
<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"; 
block1="block:block1" block2="block:block2">
   <t:block id="block1">My Page Specific Content for Block 1</t:block>
   <t:block id="block2">My Page Specific Content for Block 2</t:block>
</t:layout>

But tapestry can't bind block1 and block2, because they appear in the template 
after the binding point.

This solution works, but produces an extra <html> tag in the output document:
<html  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<t:block id="block1">My Page Specific Content for Block 1</t:block>
<t:block id="block2">My Page Specific Content for Block 2</t:block>
<t:layout block1="block:block1" block2="block:block2"></t:layout>
</html>



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to