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