Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-1583

The "block:" binding prefix may only reference blocks that appear before the reference in the template, an error occurs if the block is defined later in the template

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.4
    • Fix Version/s: 5.0.5
    • Component/s: None
    • Labels:
      None

      Description

      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>

        Attachments

          Activity

            People

            • Assignee:
              hlship Howard M. Lewis Ship
              Reporter:
              jkassis Jeremy F. Kassis
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: