[ https://issues.apache.org/jira/browse/MYFACES-3525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16322742#comment-16322742 ]
Thomas Andraschko commented on MYFACES-3525: -------------------------------------------- The current patch contains following description: + /** + * When CLEAR_INPUT_WHEN_SUBMITTED_VALUE_IS_NULL_OR_EMPTY is enabled, input fields will be cleared + * when null or empty values are submitted. When disabled, and INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL + * is enabled, submitting null or empty values will cause the previous model value to be restored + * to the input field. + **/ Shouldn't this behavior be independent from INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL now? I thought we introduced the problem because the current behavior depends on INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL. Not sure... Maybe we have 3 states of the new param? - true: always clear - false: always populate from model - auto: PRE JSF 2.3 behavior which also checks INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL > javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL value affects > display behavior for required fields > -------------------------------------------------------------------------------------------------------------- > > Key: MYFACES-3525 > URL: https://issues.apache.org/jira/browse/MYFACES-3525 > Project: MyFaces Core > Issue Type: Bug > Affects Versions: 2.0.12, 2.1.18, 2.2.12, 2.3.0-beta > Reporter: VS > Assignee: Leonardo Uribe > Fix For: 2.0.25-SNAPSHOT, 2.1.19-SNAPSHOT, 2.2.13-SNAPSHOT, 2.3.0 > > Attachments: MYFACES-3525-JSF23.patch, > MYFACES-3525-setsubmittedValueagain.patch, MYFACES-3525.patch > > > Inconsistent behavior for required field validation when > javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL is set to true > versus false > To observe behavior: > 1. Set javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL to true in > web.xml > 2. Create JSF Page: > <h:form> > <h:messages showSummary="true"/> > <h:inputText value="#{page1Controller.firstName}" > required="true" > requiredMessage="You must enter a first name"/> > <h:commandButton value="Submit"/> > </h:form> > 3. Create Managed Bean: > @ManagedBean > public class Page1Controller > { > public String getFirstName() > { return "Default Value"; } > public void setFirstName(String value) > { // no-op (for example purposes only) } > 4. Load JSF page, blank out value in the input field and click Submit > 5. Error message is displayed, however the value in the input field (which > you formerly blanked out) is now reset back to its original value. > 6. Change the javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL > setting to false and re-run the test. > 7. Note that the value in the input field remains blank. > Behavior is inconsistent and should be fixed > (javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL setting of true > or false should not result in inconsistent behavior with required fields) > ---- > To state in a different way: > When INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL is TRUE, and you blank > out a value for a required field that had previously been populated by the > model, submit the form, you will see the OLD data from the model in the > field. However, if that field had had a format validation applied to it and > the user submits the form with a format validation error, the OLD data is NOT > shown in the field (instead, the submitted/invalid data is shown). The same > should happen for required field validation errors. The field should show the > "blank" data and not the original model data. In order to get the correct > behavior, the developer has to currently set > INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL to false. But they should not > have to do this... whether INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL is > true or false, the behavior of showing the blank field that the user > submitted should be the same. -- This message was sent by Atlassian JIRA (v6.4.14#64029)