Right, it's really facelets to blame - in com.sun.facelets.util.FacesAPI:
public final static int getComponentVersion(UIComponent c) {
return (version >= 12 && c instanceof UIComponentBase) ? 12 : 11;
}
Does anybody with more JSF/Trinidad experience know a more reliable way to
determine the version?
Stephen Friedrich wrote:
Thanks Adam,
sorry for the helpless comments. Please understand that I am just
a JSF user who tried to use Trinidad, Seam and Facelets in
combination.
Up to today I have never read about how unified EL is implemented,
so I just did not get that ValueBindingValueExpression was only
needed to support legacy JSF 1.1 functions.
I tried to debug where the ValueBindingValueExpression gets created
and unfortunately that's were facelets seem to get involved.
My hunch is that TrinidadComponentHandler.createMetaRuleset()
should add its own rules in front of the default rules created in
the facelets superclass ComponentHandler.createMetaRuleset().
Currently facelets adds a ValueHolderRule that ultimately creates
the value binding.
Does that make sense?
Adam Winer wrote:
On 8/7/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Thanks Matthias,
any comment on the actual bug?
Also was the ValueBindingValueExpression introduced for 1.2 (and
immediately marked deprecated) or was it already removed/refactored
on trunk?
Trunk is JSF 1.1. Ergo, it doesn't exist. We're using a branch
for 1.2 support.
ValueBindingValueExpression is an adapter class that wraps
a ValueBinding, and turns it into a ValueExpression. It's
deprecated because ValueBindings are deprecated - ergo,
avoid using it.
We can't pass the ELContext into ValueBinding, because
ValueBinding doesn't take ELContext, it takes FacesContext.
(We could be retrieving the FacesContext off of the ELContext,
but it'd be the same FacesContext instance.)
I've no idea what change you're recommending in the code.
My hunch is the major issue is that something is creating
a ValueBinding instead of a ValueExpression. Could you find
out what bit of code is creating a ValueBinding, and why?
-- Adam