myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-2645) The view state is saved before encodeAll() is called on every UIViewParameter in an AJAX request
Date Wed, 07 Apr 2010 20:26:33 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-2645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12854685#action_12854685
] 

Leonardo Uribe commented on MYFACES-2645:
-----------------------------------------

The javadocs of UIViewParameter.encodeAll says this:

".......Called specially by UIViewRoot.encodeEnd(javax.faces.context.FacesContext), this method
simply sets the submitted value to be the return from getStringValue(javax.faces.context.FacesContext)......"

My question is why? isn't that bad?

> The view state is saved before encodeAll() is called on every UIViewParameter in an AJAX
request
> ------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-2645
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2645
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.0-beta-3
>            Reporter: Jakob Korherr
>            Assignee: Jakob Korherr
>         Attachments: MYFACES-2645-spec-proposal.patch
>
>
> UIViewParameter calls setSubmittedValue() in encodeAll() to store the current value of
the view parameter in the state as the submitted value (this helps UIViewParameter to restore
its value on a postback). UIViewParameter.encodeAll() itself is called by UIViewRoot.encodeEnd()
for every UIViewParameter in the view.
> If the current request is an ajax-request, the view state is currently already generated
in UIViewRoot.encodeChildren() (before UIViewRoot.encodeEnd()). At this time the submitted
value for every UIViewParameter is null, because its encodeAll()-method was not called yet.
> Later, when UIViewRoot.encodeEnd() is called, UIViewParameter.encodeAll() is called and
it sets the submitted value correctly, but due to the fact that the state has already been
generated, these changes are dropped.
> This causes the value of every UIViewParameter to be set to null in the next request,
which will most likely end in validation problems with the required validator.
> The related thread to this issue from the mailing list can be found at: http://www.junlu.com/list/43/611590.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message