My 2 cents....

I'd rather see us pick a *standard value* for "a" ("ezcomp", "compositeComponent" too long??, etc.).  This is less confusing.  Less to worry about in the ezcomp declaration.  Page author won't have to worry about the EZComp author masking their values.  And if scoping is done correctly, this value won't exist automatically outside the component which consumes it... so there's no name-space collision issue here.

If a mapping *is* desired to make it shorter in later references, I'd suggest solving it more generically.  For example, in JSFTemplating an event handler can set a request attribute:

<event type="beforeCreate">
    setAttribute(key="a" value="#{compositeComponent.attributes}");
</event>


The above is not a proposal.  I am trying to point out that there are more generic easy solutions for this.  I don't like the complexity involved in a dynamic variable name -- it'll just confuse people.  Keep it simple.

Ken


Martin Marinschek wrote:
Hi,

  
As I've mentioned when this has come up in the
past, my preferred solution would be to give the composite component
author the ability to define their own name/alias for
"compositeComponent.attrs" object (similar to the h:dataTable "var"
attribute).  So, something like:

  <composite:implementation attributesVar="a">
    <h:graphicImage style="border: none" value="#{a.image}"/>
  </composite:implementation>
    

I second Andy's suggestion. My +1 for this approach.

regards,

Martin