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
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.