interesting.

Thanks Mike

On 7/10/06, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
Apparently this is a year-old issue with JSF.

We're hoping it's going to be addressed in the 1.2 MR release.

https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=153

Sounds like the real fix is to rework how UIData behaves.   I think
the only JSF 1.1 solution is to add a forward-compability flag that
handles it the same way as suggested by #153:  "UIData state should be
saved following the same rules as a normal component without all of
the complicated rules"

On 7/10/06, Andrew Robinson <[EMAIL PROTECTED]> wrote:
> Good informtion. Thanks for tracking this down. The
> updateActionListener would not have worked in my case as I have
> multiple tables and they would each need to preserve the state if any
> button in any list is clicked. But good to know.
>
> It would be great with h:dataTable or at least t:dataTable to do as
> you say by default, if validation is skipped, keep the row state for
> rendering.
>
> Thanks,
> -Andrew
>
> On 7/10/06, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
> > Just as an FYI, using preserveRowStates appears to work, but I don't
> > know what other problems it might cause.   Here's what I'm considered
> > -- using updateActionListener and a variable to only set it when I
> > need it.
> >
> >                                 <t:dataTable
> >                     value="#{testcase.list}"
> >                                     var="item"
> >                                         
preserveRowStates="#{testcase.preserveRowState}"
> >                                         >
> >
> >                                                 <h:column>
> >
> >                                         <t:inputText
> >                                                                 
id="projectName"
> >                                                                 
value="#{testcase.value}"/>
> >
> >                                                         <h:commandButton
> >                                                                 
immediate="true"
> >                                                                 value="Immediate 
Button - loses value">
> >                                                                 
<t:updateActionListener
> >                                                                         
property="#{testcase.preserveRowState}"
> >                                                                         
value="#{true}" />
> >                                                         </h:commandButton>
> >                                                         <h:commandButton
> >                                                                 
immediate="false"
> >                                                                 
value="Non-Immediate Button - preserves value">
> >                                                                 
<t:updateActionListener
> >                                                                         
property="#{testcase.preserveRowState}"
> >                                                                         
value="#{false}" />
> >                                                         </h:commandButton>
> >
> >                                           </h:column>
> >
> >                                 </t:dataTable>
> >
> >
> >
> >
> > On 7/8/06, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
> > > Andrew,
> > >
> > > I'm hitting the same problem.   I spent half of Friday trying to track
> > > it down, but I haven't solved it yet.
> > >
> > > So far, I've determined that it affects all UIData components
> > > (h:dataTable, t:dataTable, and t:dataList).
> > >
> > > I've also figured out that it has something to do with incorrectly
> > > restoring the row state for EditableValueHolders in the UIData during
> > > renderResponse.   The UIData should render the submitted values, but
> > > those submitted values are wrong.
> > >
> > > During applyValues, the submitted values for the UIInputs are
> > > correctly set and restored, but during renderResponse, the submitted
> > > values for the UIInputs have mysteriously changed to null.    I'm
> > > still trying to figure out why the restored table state isn't the same
> > > in all phases.
> > >
> > >
> > > On 6/30/06, Andrew Robinson <[EMAIL PROTECTED]> wrote:
> > > > I had thought I had my problem of phases with UIData figured out, but I 
am
> > > > still having issues.
> > > > I have a data table with input controls in it (inputText for example).
> > > > Sometimes I lose data in these controls. Here are the use cases and the
> > > > associated issue:
> > > >
> > > > If action immediate set to true, I lose all my data in the data tables
> > > > If immediate is false my action never fires if a validation error occurs
> > > > (this is not what I want in this use case, I want my action to ALWAYS 
fire)
> > > > If I change the phase ID of the action to the validations phase, and 
there
> > > > are validation errors, everything works
> > > > If I chagne the phase ID of the action to the validations phase and 
there
> > > > are no validation errors, I lose my data in the table What I am trying 
to
> > > > figure out is the difference between #3 and #4.
> > > >
> > > > So, I have changed my action to execute during the processing of
> > > > validations. This allows me to run my code regardless of validation 
errors.
> > > > The side effect is if there are no validation errors, I still lose my 
data.
> > > >
> > > > Why would all my submitted values re-render in the data table when 
there are
> > > > validation errors, but not when there are not (I am skipping update 
model,
> > > > so in either case it never fires)?
> > > >
> > > > I can't see any difference in the code except that with validation 
errors
> > > > there is at least one UI component marked as not being valid, but that
> > > > doesn't seem like it should cause a behavior change with all components 
on
> > > > the whole page. If it does how does that work (I couldn't see any such
> > > > behavior in the code)?
> > > >
> > > > I really need to get this sorted out, so if someone could shed some 
light on
> > > > how UIData manages to have its child components render submitted values 
or
> > > > not I'd really appreciate it.
> > > >
> > > > Thanks,
> > > > Andrew
> > > >
> > > >
> > >
> >
>



--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Reply via email to