myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <simon.kitch...@chello.at>
Subject Re: AW: [Trinidad] tr:table "binding" attribute problem
Date Tue, 15 Jan 2008 16:11:21 GMT
---- shhQuiet <stevehorne@gmail.com> schrieb:
> 
> 
> Rottstock, Sven wrote:
> > 
> > Hi Steve,
> >  
> > i don't know why the exception is thrown. But could you try the
> > following solution:
> >  <snip>
> >         <pmb:businessEntityList backer="#{wrapper.entityBacker}" >
> >             <f:attribute name="binding"
> > value="#{wrapper.entityBacker.listTable}"/>
> >         </pmb:businessEntityList>
> > </snip>
> > 
> 
> I tried this and it worked beautifully.  The only other change I made is in
> the included component, I used the "binding" attribute like this:  <tr:table
> binding="#{binding}" ... >
> 
> Thanks for your suggestion...  The next question is whether this is a
> Trinidad or Facelets bug...

I would think it's a Facelets issue.

By the way, are you aware that tables use the "flyweight" pattern?
[at least, h:dataTable does, and I am 99.9% sure that trinidad tables will too].

This means that when a table has 3 child components, then it always has 3 child components,
no matter how many data rows it is rendering. The same child component instances get reused
for each row of data, with the critical bits of data (submitted value etc) replaced with the
appropriate data for the "current row" on each iteration. Making changes to a property that
is not part of this "criticical set" effectively changes it for every table row.

Bindings are evil anyway...

Regards, Simon


Mime
View raw message