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.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to