[jsr-314-open] [AjaxBehaviorEventAttribute] why must it be a literal?

Norbert Truchsess norbert.truchsess at t-online.de
Fri Aug 28 04:24:38 EDT 2009


Am Donnerstag, den 27.08.2009, 09:38 -0400 schrieb Andy Schwartz:
> Hi Ed -
> 
> Ed Burns wrote:
> > Which begs the question: 

see: http://begthequestion.info/

> > do we need to re-introduce immediate evaluation
> > for EL expressions?  In other words, do we bring back $?
> >   
> 
Andy wrote:
> I don't believe that this is necessary.  Facelets of course does not 
> support the concept of "immediate" expressions - ie. the Facelets engine 
> itself does not evaluate EL expressions.  I don't believe that we want 
> to change this.  

the Facelets-Taghandler-API actually does support immediate evaluation
of tag-attributes. See javadoc of:
javax.faces.view.facelets.TagAttribute.getObject() 

What Facelets doesn't support is recognising '$' as indicator for
immediate evaluation (and making use of it in ComponentHandler-class).

> Instead, we should simply follow the pattern that is 
> already used by other tags that evaluate EL expressions during 
> tag/handler execution, such as the JSTL tags.  That is, we should allow 
> the Facelets engine to create a (deferred) ValueExpression that happens 
> to be evaluated by the Behavior handler when the handler is applied, 
> similar to the way the c:forEach "items" attribute is handled today.
> 

I'm in favor to support '$' for immediate-evaluation (for any
attribute). It allows the page-author to indicate that an attributes
value is not intendet to change during the lifetime of that view. (Which
saves quite a number of redundant re-evaluations of EL-Expressions)

- Norbert

> Andy
> 
> > Ed
> >
> >   
> 





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