[jsr-314-open] #{compositeComponent.attrs....}

Andy Schwartz andy.schwartz at ORACLE.COM
Wed Apr 15 11:43:01 EDT 2009


Hey Ken -

Ken Paulsen wrote On 4/13/2009 12:22 PM ET:
>>
>>>   Page author won't have to worry about the EZComp author masking 
>>> their values.
>>
>> Unless I am missing something here, the same is true if we go with a 
>> "var" approach.
>
> I think you mean "without" the var approach?  The difference is the 
> page author can expect what the reserved word will be vs. every 
> component being different.

I am still confused about how the choice of the var name within a 
composite component implementation impacts page authors.  I was thinking 
that the page author would not be exposed to this in any way.  I would 
expect that the page author wouldn't necessarily be able to distinguish 
between a composite component an a plain old Java component.  So, yeah, 
I think I am missing something here.

>>
>> To me the "var" approach seems much simpler than, say, requiring the 
>> composite component author to manually move the attributes map to a 
>> request-scoped variable.  Also, a solution where we shove the 
>> attributes map into some other scope (eg. request scope) has the 
>> downside of raising the name collision problem again, since now we 
>> need to compete with managed beans names that occupy that scope.
> The above was not a suggested syntax, it's just one that works today.  
> If I had to pick a syntax on the fly, perhaps:
>
>     <f:alias var="foo" target="#{some.el}" />

Ah, okay - makes sense.  Another naming option might be:

  <f:var name="foo" target="#{some.el}">

BTW, would this tag wrap other tags/components so that the variable was 
only active while descendents are being processed (like f:ajax)?


>
>> I guess the bottom line is that I can live with picking a standard 
>> name, but the "var" approach seems more elegant to me, and not 
>> especially confusing/complex, since this approach should already be 
>> familiar to JSTL/JSF users.  I can also live with not doing anything 
>> of course, though it would be nice to provide a more concise syntax 
>> so that composite component authors can tighten up their implementations.
> I'm for it if its generalized (i.e. <f:alias /> type of solution)), I 
> don't see the rationale for making a special case here.

Sure, I am okay with a generalized solution as well.  FWIW, I do see 
benefit in providing a convenience API as well for the composite 
component attributes map case, since this is going to be an amazingly 
common case.  If we did provide both solutions (where the 
composite:implementation attribute was just shorthand for 
f:alias/f:var), personally I would just use the attribute every time. :-)

Andy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jsr-314-open-mirror/attachments/20090415/ffa3cedb/attachment.html 


More information about the jsr-314-open-mirror mailing list