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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0.4
    • 5.0.5
    • None
    • 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

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

            Dates

              Created:
              Updated:
              Resolved: