Hi I tested it and I am getting a weird result: My main page gets rendered several times and the block for the clayForEach is not rendered.
The set up is a working Clay template with the following block in it: .... <span jsfid="clayForEach" bodyJsfid="news" var="myvar" allowBody="false" value="[EMAIL PROTECTED]> <div class="story"> <h3>Story Title</h3> <p>Story body - reduced for simplicity</p> </div> </span> .... a clay template htmlfile news.html: <div class="story"> <h3><span jsfid="outputText" value="[EMAIL PROTECTED]" />Story Title</h3> <p><span jsfid="outputText" value="[EMAIL PROTECTED]" />Story body</p> </div> and in my clay-config.xml: <component jsfid="news" extends="clay" id="news"> <attributes> <set name="clayJsfid" value="/pages/news.html" /> </attributes> </component> the method signature for otherTopNews is : public List getOtherTopNews() Debugging this, I have added an extra catch in the ClayAmalgam.clayForEach method, catching the case where vi is null at the end. Here I print out the type of valueList (which should equal the returnvalue of otherTopNews i.e List). It states that it is of type String!! I have tried to figure out where it changes from a List to a String, but I am at a loss. Hermod -----Original Message----- From: Gary VanMatre [mailto:[EMAIL PROTECTED] Sent: Tuesday, February 07, 2006 3:30 PM To: Struts Users Mailing List Subject: RE: [shale] Clayforeach tag >From: <[EMAIL PROTECTED]> > > Hi > > So in the case where bodyJsfid is a html template, I could do something like > this: > > >template jsdid=/news.xml: ><h3><span jsfid="outputText" value="#{myvar.head}" /><h3> ><p><span jsfid="outputText" value="#{myvar.body}" /><p> > Oh, right. I forgot the other half of the story. The snippet will use the managed-bean-name symbol. So, you should code: template jsdid=/news.xml: <h3><span jsfid="outputText" value="[EMAIL PROTECTED]" /><h3> <p><span jsfid="outputText" value="[EMAIL PROTECTED]" /><p> ><span jsfid="clayForeach" bodyJsfid="/news.xml" var="myvar" >allowBody="false"> >bla bla ></span> You will need a "value" attribtue to bind to which can be a List, Map or Array types. This is a ValueBinding expression. <span jsfid="clayForeach" bodyJsfid="/news.xml" var="myvar" value="[EMAIL PROTECTED]" allowBody="false"> Gary >and then do something like this: > ><span jsfid="clayForeach" bodyJsfid="/news.xml" var="myvar" >allowBody="false"> >bla bla ></span> > > -----Original Message----- > From: Gary VanMatre [mailto:[EMAIL PROTECTED] > Sent: Tuesday, February 07, 2006 2:30 PM > To: Struts Users Mailing List > Subject: Re: [shale] Clayforeach tag > > > >From: > < > > Hi > > > > I was wondering about the usage of this tag. I see it has a > > shapeValidator,but > I > > was wondering what the intended syntax for this tag is, and if the current > > var > > value is somehow passed along to it? > > > > The clayForEach uses the "var" attribute like the JSTL var. But, in this > case, > it's the name of a Map placed in session scope. This component (Clay) pulls > the > data from the "value" expression and loads a map. The bodyJsfid is the > content > that is repeated for each item. The "bodyJsfid" can be a html template or XML > configuration. The row is a naming container so you can add update able > fields > and the reason the map is stored in session scope. I thought it would be > important to be able to name the session scoped variable since you have to > cleanup yourself. > > The component uses the clay shapeValidator callback event to create the beans > that define the shape of the subtree. This callback has the same method > signature as the "validator" method binding event but is not associated with > the > validation phase. I't invoked for the rendering phase. > > The "clayForEach" shapeValidator event is bound to a managed bean that is > loaded > in the faces-config from the Clay jar. > > The "validator" term seemed to work because it validates the shape of the > Clay > component. The basic idea of this method binding event is to create the Clay > subtree at runtime from model data instead of a XML or HTML static > configuration > file. > > The tomahawk "dataList" component will do the same thing with more style. > > > > > > > Hermod > > > > > > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > > > > This email with attachments is solely for the use of the individual or > > entity to whom it is addressed. Please also be aware that the DnB NOR Group > > cannot accept any payment orders or other legally binding correspondence > > with > > customers as a part of an email. > > > > This email message has been virus checked by the virus programs used > > in the DnB NOR Group. > > > > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > > > > > > --------------------------------------------------------------------- > > 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] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]