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 >