This reminds me of something I've been thinking about for some time: Tapestry-like HTML views that dovetail with XML component definitions (see Hans' Bergsten's article about dumping JSP with JSF at onjava.com). In that case an HTML view references components in a component definition file. If you could select a component definition file at runtime for a view, I believe you'd have analagous functionality to what Gary is proposing here.
david
Le Mar 13, 2005, à 11:09 AM, [EMAIL PROTECTED] a écrit :
David Geary Wrote: Perhaps, but assuming we want the same functionality that Tiles currently provides, such as XML tile definitions, tile inheritance, role-based tiles, controllers, etc., you're going to have to reinvent it unless you leverage Tiles somehow. You can have layout components, certainly, but that would just be the tip of the Tiles iceberg.
I would argue that the point of the xml subview component would be to provide something that tiles could not. For another example, a dataTable that defines first and last name. Notice the EL for the value attribute of the dataTable #{managed-bean-name.persons}. The managed-bean-name will be replaced with the id attribute of the subview component in the JSP this allows a definition to be used against more than one managed bean/ view controller. In the next displayElement definition, a couple columns are added to the personTable component. The only way to do this with JSP and tiles is to create two JSP's and use tiles to pull in a different fragment.
JSP Tag <sh:xsubview id="personTable" elementId="personTable" /> <sh:xsubview id="employeeTable" elementId="employeeTable" />
XML view definition
<displayElement elementId="personTable" extends="dataTable">
<attributes>
<set name="value" useValueLateBinding="true" value="#{managed-bean-name.persons}"/>
<set name="var" value="e"/>
<set name="rows" value="5"/>
<set name="first" value="1"/>
<set name="border" value="1"/>
<set name="cellpadding" value="3"/>
</attributes>
<element renderId="1" elementId="firstNameColumn"/> <element renderId="2" elementId="lastNameColumn"/>
</displayElement>
<displayElement elementId="employeeTable" extends="personTable"> <element renderId="0" elementId="ssnColumn"/> <element renderId="3" elementId="birthDateColumn"/> </displayElement>
I would advocate a layer of Shale components/renderers/variable resolvers/whatever that integrate with Tiles. Perhaps we could make layout components an option instead of layout JSP pages, as is the default for Tiles, although I bet most people would prefer the latter.
I don't see the two options being mutually exclusive.
Gary
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]