Hi Ray,

> me, and it seems to in JSF 1.1.01, but it doesn't in myFaces 
> 1.0.7.  So if what you are saying is true, then is there a 
> bug in the RI in myFaces 1.0.7?

Have you tried the RC for 1.0.8 of MyFaces?
You'll find them here:
http://cvs.apache.org/dist/incubator/myfaces/builds/

HTH,
Matthias


> Thanks,
> Ray
> 
> --- Heath Borders <[EMAIL PROTECTED]> wrote:
> 
> > Well, the attributes map in the RI might do the
> > ValueBinding checking for you.
> > 
> > 
> > On Wed, 5 Jan 2005 18:42:39 -0800 (PST), Ray Clark 
> > <[EMAIL PROTECTED]> wrote:
> > > Thanks Heath.
> > > 
> > > I just had time again to get back to this.  I have
> > a
> > > new solution :)
> > > 
> > > My renderer used to have this code:
> > > 
> > > String colSpan = (String)
> > > rptTableCol.getAttributes().get("colSpan");
> > > if (colSpan != null) {
> > >         writer.writeAttribute("colSpan", colSpan,
> > null);
> > > }
> > > 
> > > That code worked fine in JSF 1.1.01, but didn't
> > work
> > > with myFaces 1.0.7.  Well, I now have new code in
> > the
> > > renderer that works.  The renderer now looks like
> > > this:
> > > 
> > > ValueBinding vb =
> > > rptTableCol.getValueBinding("colSpan");
> > > String colSpan = null;
> > > if (vb == null) {
> > >         colSpan = (String)
> > > rptTableCol.getAttributes().get("colSpan");
> > > } else {
> > >         colSpan = (String) vb.getValue(context);
> > > }
> > > if (colSpan != null) {
> > >         writer.writeAttribute("colSpan", colSpan,
> > null);
> > > }
> > > 
> > > So to get this to work the renderer now has to
> > check
> > > to see if this attribute has value binding or not.
> > > Then get the value appropriately.  Now why would
> > there
> > > be a difference between JSF 1.1.01 and myFaces?
> > > 
> > > Anyway, how does this solution look to you? :)
> > > 
> > > Thanks,
> > > Ray
> > > 
> > > --- Heath Borders <[EMAIL PROTECTED]> wrote:
> > > 
> > > > Adding that line really doesn't go along with
> > the
> > > > spirit of
> > > > valueBindings, though.  Ideally, you want the ValueBinding to be
> > > > evaluated as late as necessary, preferably just
> > > > before the UIComponent
> > > > is rendered (which is when most ValueBindings
> > are
> > > > referenced, in the
> > > > renderer).
> > > >
> > > >
> > > > On Sun, 2 Jan 2005 16:41:55 -0800 (PST), Ray
> > Clark
> > > > <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > Well, I played around and I found a solution
> > to my
> > > > value binding problem.
> > > > >
> > > > > In the tag I have a setValueBinding method
> > that I
> > > > copied from the Core
> > > > > JavaServerFaces book.  It looks like this now:
> > > > >
> > > > > public void setValueBinding(UIComponent
> > component,
> > > > String attributeName,
> > > > >           String attributeValue) {
> > > > >
> > > > >      FacesContext context =
> > > > FacesContext.getCurrentInstance();
> > > > >      Application app =
> > context.getApplication();
> > > > >      ValueBinding.vb =
> > > > app.createValueBinding(attributeValue);
> > > > >      component.setValueBinding(attributeName,
> > vb);
> > > >
> > > > >      // Adding this line of code makes it work
> > > > >     
> > component.getAttributes().put(attributeName,
> > > > vb.getValue(context));
> > > > > }
> > > > >
> > > > > I noticed that the Renderer was getting the
> > value
> > > > from the
> > > > > component.getAttributes.  So I added the put
> > and
> > > > it started working.  I'm
> > > > > not sure if this is what should have been
> > done,
> > > > but it certainly does the
> > > > > job.  The tag extends the UIComponentTag.
> > Since
> > > > this 1 line fixed the
> > > > > problem I didn't think anyone would need any
> > other
> > > > code.  Let me know if you
> > > > > do though.
> > > > >
> > > > > As I said, this worked fine with JSF 1.1.01
> > > > without the 1 line that I had to
> > > > > add.
> > > > >
> > > > > Hope this helps someone to figure out what the
> > > > problem was.
> > > > >
> > > > > Thanks,
> > > > > Ray
> > > > >
> > > > >
> > > > > Heath Borders <[EMAIL PROTECTED]> wrote:
> > > > > Date: Sun, 2 Jan 2005 11:22:46 -0600
> > > > > From: Heath Borders
> > > > > To: Ray Clark
> > > > > Subject: Re: ValueBinding
> > > > >
> > > > >
> > > > > Make sure to let us know the answer if you
> > find
> > > > it. :)
> > > > >
> > > > >
> > > > > On Sun, 2 Jan 2005 08:41:03 -0800 (PST), Ray
> > Clark
> > > > wrote:
> > > > > > Thank you for your response. I need to trim
> > down
> > > > my
> > > > > > code so that it centers on the problem
> > before I
> > > > post
> > > > > > it. When I get that done I'll post. It may
> > be a
> > > > > > couple of days. Who knows, I may stumble
> > across
> > > > the
> > > > > > answer in the meantime.
> > > > > >
> > > > > > Thanks,
> > > > > > Ray
> > > > > >
> > > > > > --- Heath Borders wrote:
> > > > > >
> > > > > > > Send your code for the getter/setter in
> > your
> > > > > > > component, and the jsp
> > > > > > > code that you're drives the whole thing.
> > The
> > > > > > > problem must be there
> > > > > > > then.
> > > > > > >
> > > > > > >
> > > > > > > On Sat, 1 Jan 2005 12:13:32 -0800 (PST),
> > Ray
> > > > Clark
> > > > > > > wrote:
> > > > > > > > I just noticed a problem with my value
> > > > binding
> > > > > > > under myface. My value
> > > > > > > > binding works the way that it is coded
> > with
> > > > JSF
> > > > > > > 1.1.01, but doesn't work
> > > > > > > > with myfaces 1.0.7. I was wondering if
> > > > anyone
> > > > > > > could tell me the right way
> > > > > > > > to code this for myfaces?
> > > > > > > >
> > > > > > > > Here is my code that works for JSF
> > 1.1.01. I
> > > > got
> > > > > > > it right out of the Core
> > > > > > > > JavaServerFaces book:
> > > > > > > >
> > > > > > > > public void setProperties(UIComponent
> > > > component) {
> > > > > > >
> > > > > > > > super.setProperties(component);
> > > > > > > >
> > > > > > > > setString(component, "rowSpan",
> > rowSpan);
> > 
> === message truncated ===
> 
> 
> 
>               
> __________________________________ 
> Do you Yahoo!? 
> The all-new My Yahoo! - Get yours free! 
> http://my.yahoo.com 
>  
> 

Reply via email to