> > - if submitted value is null, renders its local value, if not null
>
> Yep.
>
> Note, however, that in the "update model" phase, if there is an
> associated value-binding then the local value is pushed into the model
> and the local value is immediately set to null. See UIInput.updateModel.
>
> So in the render phase, the local value will only be non-null for
> components that have no value-binding for the "value" attribute.


But what happens, if I set the component immediate attribute to true? Then
conversion and validation of the submitted value will be processed in the
apply request values phase. That's why I think the local value is set to the
submitted value in this phase, if no conversion or validation error occurs
(I haven't investigated the source code).

When I now jump directly from the apply request values phase to the render
response phase in the same lifecycle (e.g. in an immediate value change
listener method calling renderResponse()), then no update of the model value
occurs. In this case, it seems that the local value will be fetched in the
render response phase, despite of the component having a value-binding for
the "value" attribute?!


Regards,
Matthias

> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Auftrag
> von Simon Kitching
> Gesendet: Freitag, 9. Dezember 2005 03:04
> An: MyFaces Discussion
> Betreff: Re: rendering behavior of EditableValueHolders
>
>
> Matthias Kahlau wrote:
> > Hi!
> >
> >
> > Can somebody confirm or correct what I found out about the rendering
> > behavior of EditableValueHolders:
> >
> > - renders its submitted value, if not null
>
> Yep. This allows values that fail validation to be re-rendered rather
> than just "disappearing".
>
> Note that when validation succeeds, the submitted value is immediately
> set to null.
>
> > - if submitted value is null, renders its local value, if not null
>
> Yep.
>
> Note, however, that in the "update model" phase, if there is an
> associated value-binding then the local value is pushed into the model
> and the local value is immediately set to null. See UIInput.updateModel.
>
> So in the render phase, the local value will only be non-null for
> components that have no value-binding for the "value" attribute.
>
> > - if both values are null, renders the value of the tags value attribute
>
> Yep. Well, I would put it as "fetches the value from the model via the
> associated value-binding, if any".
>
>
> Well, that's how I understand it anyway. Corrections welcome.
>
> Cheers,
>
> Simon

Reply via email to