I like the idea.  I've always felt tiles was more complicated than
necessary.  Simplify it.  Antonio's question is a good one.  The
lookup order needs to be well documented and a
type="definition|attribute" attribute would probably need to be
available to override the standard lookup procedure.

On 6/13/06, Greg Reddin <[EMAIL PROTECTED]> wrote:
Ticket SB-21 [1] seeks to simplify the Tiles taglib API.  First, it's
a given that this will break backwards compatibility.  You can't
reduce an API without breaking compatibility.  But as long as we're
seeing this version of Tiles as a rework, I don't think it's a
problem.  Also, I don't think it's a difficult thing to fix in
existing applications.  No functionality will be removed, but
redundant hooks to the same functionality will be removed.  Finally,
I think this will be one of the greatest improvements to the
usability of Tiles.  I'm currently working on a patch to implement this.

Of the attributes that are currently supported by InsertTag, I
believe the following are redundant:

1)  attribute, definition, name could all be resolved to name.
2)  component, page, and template could all be resolved to template.

In addition the name attribute can be interpreted as either a pointer
to a Tiles definition or attribute or an URL, which essentially makes
it equivalent to page and template.  I propose that we reduce all
these meanings down to the "name" attribute.  IOW, name can be a
definition name or an attribute name.  I suspect this is how Tiles is
being used in 90% of applications anyway.  I know that's how I use
it.  Further, I propose that we reduce all the URL-based attributes
to the "template" attribute.  So if you want to directly insert a
page you must use the template attribute.

The net result is that you can use the insert tag in the following ways:

<tiles:insert name="someName"/>
- to insert a Tiles definition or attribute.

<tiles:insert template="/somepage.jsp"/>
- to insert a URL.

I'm not really sure what the use of the beanName and beanProperty
values are, so if someone wants to enlighten me on that, I'd
appreciate it.

Finally, I personally don't see the use for including a
controllerClass or controllerUrl in the insert tag.  IMO, if you want
to do something like that you should use the definition tag instead.

I still intend to completely support attributes defined in the tag
body as such:

<tiles:insert name="someDefinition">
   <tiles:put name="someAttribute" value="someValue"/>
</tiles:insert>

And the other attributes like flush, ignore, and role will continue
to function as always.  Have I left out any major uses of the insert
tag?  Does this change remove any functionality that anyone is
currently relying on?

Thanks,
Greg

[1] http://issues.apache.org/struts/browse/SB-21

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