Le Mar 12, 2005, à 3:52 PM, Mike Kienenberger a écrit :

David Geary <[EMAIL PROTECTED]> wrote:
I think this is all good stuff, but I'd rather see integration with
Tiles instead of reinventing Tiles. Tiles has already covered some of
this ground and I see no reason for us to follow.

I haven't used JSF enough to see if it fits the same pattern, but the component-based frameworks I've used in the past have always made Tiles unnecessary. Components are "tiles".

Interestingly enough, Tiles was originally called Components.

You build a component representing your layout and stick your other layout
components in it. Then you reference your layout component from your
general application pages.


An example (and possibly not the best example) from a four-year-old
Webobjects project. Note that WebObjects (and Tapestry as well from what I
understand -- RenderBody?) both allow you to access the parent document
content. It's unclear to me whether JSF is "component-based" enough to do
this as I haven't built any components with it yet. (Someone asked me this
question last week, and I haven't had time to find an answer yet.)


Component-based models allow you to do things differently, and I'm just
wondering if you're dragging some "old-school" methodologies into it
unnecessarily. Perhaps the answer is that there's no need to reinvent Tiles
OR integrate Tiles.

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 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.


david

-Mike

==================== InternalExternalPageContent
======================================

<WEBOBJECT NAME=InternalExternalJSHeader>
<WEBOBJECT NAME=ShouldShowLeftSideMenuConditional>
<WEBOBJECT NAME=IsInternalConditional><WEBOBJECT NAME=LeftSideMenu>
</WEBOBJECT></WEBOBJECT>
<WEBOBJECT NAME=IsExternalConditional><WEBOBJECT NAME="LoginPanel">
</WEBOBJECT></WEBOBJECT>
<div class="content">
</WEBOBJECT>
<WEBOBJECT name=ParentContent></WEBOBJECT>
<WEBOBJECT NAME=ShouldReturnToLastPageConditional>
<WEBOBJECT NAME=ReturnToLastPageHyperlink>Return To Last
Page</WEBOBJECT>
<p />
</WEBOBJECT>
<WEBOBJECT NAME=ShouldReturnToURLConditional>
<WEBOBJECT NAME=ReturnToURLHyperlink>Return To Last Page</WEBOBJECT>
<p />
</WEBOBJECT>


<WEBOBJECT NAME=IsInternalConditional><WEBOBJECT NAME=InternalFooter>
</WEBOBJECT></WEBOBJECT>
<WEBOBJECT NAME=IsExternalConditional><WEBOBJECT NAME=ExternalFooter>
</WEBOBJECT></WEBOBJECT>
<WEBOBJECT NAME=ShouldShowLeftSideMenuConditional>
</div>
</WEBOBJECT>
</WEBOBJECT>
======================================================================= ========================


======================Pages in the app that use the
above======================================
<!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml11/DTD/transitional.dtd"; > -->
<html>
     <WEBOBJECT NAME=CommonHeadTags>
        <title>DEMO - Online Bill Payment</title>
        Any other <head> tags you want to add or modify
     </WEBOBJECT>

<WEBOBJECT NAME=InternalExternalPageContent>
This is where your page content would go for any particular page...ie,
<body/> content
</WEBOBJECT>
</html>
======================================================================= ============


---------------------------------------------------------------------
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]



Reply via email to