Hi Not to forget that you can package together components in a jar file and distribute them. That's reuse!
[1] http://wiki.apache.org/shale/ReusableClayJars Hermod -----Original Message----- From: JS Portal Support [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 11, 2007 10:39 AM To: [email protected] Subject: RE: Clay nested templates Hermod, Gary, Thanks a lot for your help. So it was actually easier than I thought. I'm really falling in love with Clay. Using jsp, jsf and html together in an extendable matter like this really makes my life easier. I can use a lot of building blocks from my previous versions. It also makes phasing JSP out possible in stead of having to do a complete changeover at once. And extending views... gotta love it! Cheers, Joost -----Original Message----- From: Gary VanMatre [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 11, 2007 5:28 AM To: [email protected] Subject: Re: Clay nested templates >Hi, > >I'm experimenting with Clay and I like it. A few things are not quite clear >to me though. I can make my page /user_calendar.jsf work with the following >clay config: > ><component jsfid="baseHomeLayout" extends="clay" id="baseHomeLayout"> ><attributes> ><set name="clayJsfid" value="/templates/main_template.html" /> ></attributes> ><symbols> ><set name="title" value="#{webLabels['msg.public.headTitle']}" /> ><set name="content" value="/components/empty.html" /> ></symbols> ></component> > ><component jsfid="/user_calendar.jsf" extends=" baseHomeLayout "> ><symbols> ><set name="content" value="/components/empty.html" /> ></symbols> ></component> > >But I wish to insert another template inside a template, and thought the >following might work: > ><component jsfid="/user_calendar.jsf" extends="baseHomeLayout"> ><set name="content" value="/templates/column_template.html"> ><symbols> ><set name="left_column" value="/components/empty.html" /> ><set name="right_column" value="/components/empty.html" /> ></symbols> ></set> ></symbols> ></component> > The XML above shouldn't validate to the clay DTD [1]. Try adding all symbols under the "symbols" node. <component jsfid="/user_calendar.jsf" extends="baseHomeLayout"> <symbols> <set name="content" value="/templates/column_template.html"> <set name="left_column" value="/components/empty.html" /> <set name="right_column" value="/components/empty.html" /> </symbols> </component> The symbols are passed on to nested layers of included templates. There is an example of this in the shale-usecases. A "table" template [2] incudes another markup template [3] that passes symbols to XML component definitions. The component definitions are passed symbols through 2 layers of markup templates. <component jsfid="widgetsLabel" extends="baseLabel"> <attributes> <set name="value" value="@label" /> <set name="for" value="@property" /> </attributes> </component> <component jsfid="widgetsText" extends="inputText" id="@property"> <attributes> <set name="value" value="[EMAIL PROTECTED]@property}" /> <set name="size" value="@size" /> <set name="maxlength" value="@maxlength" /> <set name="required" value="@required" /> <set name="immediate" value="@immediate" /> </attributes> </component> <component jsfid="widgetsMessage" extends="baseMessage"> <attributes> <set name="for" value="@property" /> </attributes> </component> [1] http://shale.apache.org/dtds/clay-config_1_0.dtd [2]http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-clay- usecases/src/main/webapp/symbols/businessPerson.html?view=markup [3] http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-clay-use cases/src/main/resources/org/apache/shale/usecases/symbols/inputTextWidget.h tml?view=markup >but it doesn't. I get the parse error: >java.lang.NoSuchMethodException: No such accessible method: addSymbol() on >object: org.apache.shale.clay.config.beans.SymbolBean. > >I guess I will need to create an Element for the inserted template, but >tried different approaches but can't seem to get it to work. I could >obviously create a second complete template hardcoding >/templates/column_template.html in /templates/main_template.html, but that >defeats the Clay purpose. > >Thank you, >joost Gary * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 anti virus programs used in the DnB NOR Group. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
