Issue Details (XML | Word | Printable)

Key: JAVASERVERFACES_SPEC_PUBLIC-796
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Jakob Korherr
Votes: 1
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
javaserverfaces-spec-public

Use the model value for a UIViewParameter only on a postbacks

Created: 12/May/10 09:11 AM   Updated: 19/Dec/13 10:54 PM
Component/s: Components/Renderers
Affects Version/s: 2.0
Fix Version/s: 2.3

Time Tracking:
Not Specified

Environment:

Operating System: All
Platform: All


Issuezilla Id: 796
Status Whiteboard:

size_small importance_small

Tags:
Participants: Ed Burns, Jakob Korherr and rogerk


 Description  « Hide

Imagine you have a page with a required UIViewParameter called input. You will
get a validation error as long as you don't access the view with ?input=abc. Now
if you do that once, "abc" will be saved as the submittedValue in the state of
the UIViewParameter for every postback and thus will be available for every
further postback. If you now access the view again with a GET request
(non-postback), but without ?input=abc, you will again get a validation error.
However, if you hit any button or link on the view to generate another postback
to the view, the validation error will be gone, because UIViewParameter takes
the value from before ("abc") out of the model (managed-bean) and sets it in the
state. Thus you haven't provided it via ?input=abc, but you will now have a
value of "abc" for your UIViewParameter, which seems kinda wrong to me. The
solution to this one is to get the value from the model to set it as the
submittedValue in UIViewParameter only if the current request is a postback.
However I don't know if this really is an error or the expected behaviour. I
personally just think that it is weird.

Answer from Martin Marinschek: "I absolutely agree that we should do this only
on a postback - everything else is really, really weird behaviour."