You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by MOLINA Stéphane <st...@aprilvie.fr> on 2007/10/04 14:59:42 UTC

RE: [Trinidad] Problem with validation in Seam / ValueBindingValueExpression

Hi all,

We have the same kind of problems, using the binding attribute on a tr:table (Same context : Seam + Facelets + Trinidad).

I have just seen that Facelets 1.1.14 release will correct the version computing, but is there some "tricky" mean to get round this problem ?

Thanks in advance,

Best regards


-- 
Stéphane




-----Message d'origine-----
De : Adam Winer [mailto:awiner@gmail.com] 
Envoyé : mardi 7 août 2007 23:21
À : MyFaces Discussion
Objet : Re: [Trinidad] Problem with validation in Seam / ValueBindingValueExpression

Urgh.  There's no perfect way.  Overriding the ValueHolderRule and EditableValueHolder rule in Trinidad might be the simplest solution.

-- Adam


On 8/7/07, Stephen Friedrich <tr...@eekboom.com> wrote:
> 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, trinidad@eekboom.com <tr...@eekboom.com> 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
>
>