Ok, and along with that question, what would be the correct way of doing the
following:

<component jsfid="baseLayout" extends="clay" id="base">
        <attributes>
            <set name="clayJsfid" value="/templates/layout.html" />
        </attributes>
        <symbols>
            <set name="@headerContent" value="/pages/header.html"/>
        </symbols>
    </component>

    <component jsfid="welcomePage" extends="baseLayout" id="welcome">
        <attributes>
            <set name="clayJsfid" value="/templates/layout.html" />
        </attributes>
        <symbols>
            <set name="@title" value="Welcome" />
            <set name="@bodyContent" value="/pages/welcomeBody.html" />
        </symbols>
    </component>


    <component jsfid="baseLayout" extends="clay" id="hello">
        <attributes>
            <set name="clayJsfid" value="/templates/layout.html" />
        </attributes>
        <symbols>
            <set name="@title" value="Hello World" />
            <set name="@bodyContent" value="/pages/helloBody.html" />
        </symbols>
    </component>

I ask, because the above does not work.

Thanks.

Gregg

On 4/11/06, Gregg Bolinger <[EMAIL PROTECTED]> wrote:
>
> Ok, great so far. I got soemthing working.  The problem was not having
> that welcome.html file that pulled everything together.  And that leads me
> to my next question(s).
>
> Tell me if this is a correct statement.
>
> So for every page I have I'll need a page that is the glue (welcome.html)
> as well as an html page that is the body for said page (welcomeBody.html).
> Assuming of course I am using the same header/footer/sidebar, etc and the
> only thing changing is the body.  So I might also have
>
> login.html - loginBody.html
> register.html - registerBody.html
>
> If that is a true statement, is there any way to get rid of that glue
> page?  Is there anyway to tell Clay/Shale to just use the layout.html and
> plug in the "components" I need somehow dependent on the URL or navigation?
>
> So rather than having loginBody.html maybe I just have login.html which
> just contains the body I need.  In the above scenerio it would be
> loginBody.  And the system knows that when I request login.html go grab
> layout.html and plug login.html into the correct spot?  Am I making any
> since?
>
> Basically, I don't understand the reason, beyond the glue aspect, of
> having a page whose contents don't get rendered at all.
>
> Thanks.
>
> Gregg
>
>
> On 4/10/06, Gary VanMatre <[EMAIL PROTECTED]> wrote:
> >
> > >Gary, I appreciate the information.  Ok, here is what I have and it is
> > not
> > >working.  Bear with me, I am going to post the bulk of my files, though
> > the=
> > >y
> > >are quite short.
> > >
> > >
> > >[web.xml ]
> >
> > I didn't seen anything that didn't look correct in the web.xml snippet
> > you provided.
> > One thing to check is the chains-config.xml.  If you are using
> > the  ContextRelativePathFilter
> > to prevent direct access to resources, make sure that "/S*\.html" is
> > added to the includes
> > attribute list.
> >
> > >[clay-config.xml]
> > ><view>
> > >
> > >    <component jsfid=3D"baseLayout" extends=3D"clay" id=3D"base">
> > >        <attributes>
> > >            <set name=3D"clayJsfid" value=3D"/templates/layout.html" />
> > >        </attributes>
> > >        <symbols>
> > >            <set name=3D"title" value=3D"Hello World" />
> > >            <set name=3D"bodyContent" value=3D"/pages/welcome.html" />
> > >        </symbols>
> > >    </component>
> > >
> > ></view>
> > >
> > >[clay-symbols-config.xml ]
> > ><view>
> > >
> > >    <component jsfid=3D"username" extends=3D"inputText"
> > id=3D"username">
> > >        <attributes>
> > >            <set name=3D"value" value=3D"#{ welcomeBean.username}"/>
> > >            <set name=3D"size" value=3D"20"/>
> > >            <set name=3D"maxlength" value=3D"30"/>
> > >            <set name=3D"required" value=3D"true"/>
> > >            <set name=3D"immediate" value=3D"true"/>
> > >        </attributes>
> > >    </component>
> > >
> > >    <component jsfid=3D"password" extends=3D"inputSecret"
> > id=3D"password">
> > >        <attributes>
> > >            <set name=3D"value" value=3D"#{welcomeBean.username}"/>
> > >            <set name=3D"size" value=3D"20"/>
> > >            <set name=3D"maxlength" value=3D"30"/>
> > >            <set name=3D"required" value=3D"true"/>
> > >            <set name=3D"immediate" value=3D"true"/>
> > >        </attributes>
> > >    </component>
> > >
> > ></view>
> > >
> > >[layout.html]
> > ><html>
> > ><head>
> > >    <title>
> > >        Test
> > >    </title>
> > >
> > ></head>
> > ><body>
> > ><table width=3D"100%" cellpadding=3D"2" cellspacing=3D"0" border=3D"1">
> > >    <tr>
> > >        <td>
> > >            <span jsfid=3D"clay" clayJsfid=3D"@bodyContent"
> > >allowBody=3D"false">Body Content</span>Body Content
> > >        </td>
> > >    </tr>
> > ></table>
> > ></body>
> > ></html>
> > >
> > >[welcome.html ]
> > ><table>
> > >    <tr>
> > >        <td>Username</td>
> > >        <td><input jsfid=3D"username" type=3D"text"/></td>
> > >    </tr>
> > >    <tr>
> > >        <td>Password</td>
> > >        <td><input jsfid=3D"password" type=3D"password"/></td>
> > >    </tr>
> > ></table>
> > >
> >
> > When you are using clay full html views exclusively, the entry point to
> > the page
> > needs to be a html file.  This means that you don't have a pseudo page
> > definition
> > like in tiles.  You can do this sort of thing with clay's full XML views
> > as the page
> > entry point – usecase symbols example (page1 & page2).
> >
> > What you need in your example is for the welcome.html page to be a
> > generic entry
> > point that pulls a layout in and overrides the body using a symbol (the
> > page3.html
> > symbols use cases example).
> >
> > So in your example you might want to call the welcome.html template
> > welcomeBody.html.
> > And, then add a welcome.html entry point template that pulls it all
> > togather.
> >
> > welcome.html example:
> > <html jsfid="baseLayout"
> >       bodyContent="/welcomeBody.html"
> >       allowBody="false">
> >
> >    <head><title>Mock Header</title></head>
> >    <body>The entire document is replaced by the layout.</body>
> > </html>
> >
> > The bodyContent attribute in the html node becomes a symbol that
> > overrides
> > the @bodyContent in the layout.
> >
> >
> > >And when I go to http//localhost:8080/test/welcome.html I get a 500,
> > page
> > >cannot be found [welcome.html].  I have it under the web root pages dir
> > and
> > >I have layout.html under templates.  Looking for suggestions one what I
> > have
> > >done wrong.
> >
> > The 500 response code indicates that there was a server error.  Check
> > the
> > server logs for more information on the exception.
> >
> >
> > >
> > >Thanks.
> > >
> > >Gregg
> >
> > Gary
> >
>
>

Reply via email to