Hi, Bob.

    When the specific.tml page is requested, Tapestry asks its components to
render themselves to generate the response. So, when <t:layout> on
specific.tml is asked to generate content, it knows that its body is "My
Page Specific Content". The content written by the component is:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
    <head>
        <title>My Tapestry Application</title>
    </head>
    <body>
        <!-- my comment: t:body is replaced by the actual body -->
        My Page Specific Content
    </body>
</html>

    So, you don't have to inject anything. The component knows what its body
is and know that it must be placed where <t:body> appears.

    Atenciosamente,

Matheus Eduardo Machado Moreira
[EMAIL PROTECTED]

"Violence is the last refuge of the incompetent."
        Salvor Hardin (The Foundation, Isaac Asimov)

2007/10/18, Heck, Bob <[EMAIL PROTECTED]>:
>
> Thanks for the reply.
>
> Ok, the page specific content:
>
> <t:layout
> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
>
>    My Page Specific Content
>
> </t:layout>
>
> is stored in its own .tml file, right?  Call it specific.tml
>
>
> Now, the layout template, as specified by the documentation, is
>
> <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>
>
> and that is stored I its own .tml file, call it layout.tml
>
>
> So, how does layout.tml know to use specific.tml to fill in the
> <t:body/> tag?  Does it have to be injected somehow?  Where does it get
> a reference? How is this done?
>
>
>
>
> -----Original Message-----
> From: Jonathan Barker [mailto:[EMAIL PROTECTED]
> Sent: Thursday, October 18, 2007 10:56
> To: 'Tapestry users'
> Subject: RE: Templates and t:body
>
> Bob,
>
> The documentation is correct, but requires some getting used to.
>
> A layout component is more of a design pattern (like the Border in T4).
> It is designed to be wrapped around something.  That something appears
> where you see <t:body />
>
> The naming is by convention.  I'm still using a T4 convention, so I
> actually use a <t:border /> rather than a <t:layout />, because I
> created a component named Border rather than one named Layout.  You
> could call it anything you want!
>
> When you use <t:layout />, in your page, it's like saying, "Take
> everything inside of this tag and put in into Layout where you see
> <t:body />".
>
> I hope that helps.
>
> Jonathan
>
>
> > -----Original Message-----
> > From: Heck, Bob [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, October 18, 2007 11:37 AM
> > To: Tapestry users
> > Subject: Templates and t:body
> >
> > I am really confused and in need of some clarification.
> >
> > The templates documentation for Tapestry 5
> > (http://tapestry.formos.com/nightly/tapestry5/tapestry-core/guide/temp
> > la
> > tes.html) shows this (direct copy/paste):
> >
> > ============================
> > The following example is a Layout component, that adds basic HTML
> > elements around the page specific content:
> >
> > <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>
> >
> > A page would use this component as follow:
> >
> > <t:layout
> > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
> >
> >   My Page Specific Content
> >
> > </t:layout>
> >
> > When the page renders, the page's template and the Border component's
> > template are merged together:
> >
> > <html>
> >   <head>
> >     <title>My Tapestry Application</title>
> >   </head>
> >   <body>
> >     My Page Specific Content
> >   </body>
> > </html>
> > ==============================
> >
> >
> > 1.  I thought a layout component should start with t:layout, someone
> > please clarify if the first block is actually a layout component.
> >
> > 2.  I will assume (not sure this is correct, though) that the
> > introductory sentences are reversed and the layout component is
> > actually the second block, i.e.:
> >
> > <t:layout
> > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
> >
> >   My Page Specific Content
> >
> > </t:layout>
> >
> >
> > And, the page is actually the first block, i.e.:
> >
> > <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>
> >
> >
> > 3.  Given that #2 assumption is correct, I still do not understand how
>
> > the page inserts the layout template in the body.  There is no id
> > given to the template, so where is the linking between the two? Is
> > there a specific name given to the template file?  If so, it is not
> > explained or even mentioned.
> >
> > 4.  The sentence "When the page renders, the page's template and the
> > Border component's template are merged together:" is confusing as
> > well, as I read elsewhere that there is no Border component in T5.
> >
> >
> > Am I missing something very basic here?  I just can't seem to get a
> > handle.  All I want to do is include menus/navigation in other pages,
> > does not seem like it should be that hard.
> >
> > Thanks in advance for your help.
> >
> > Bob
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to