[ https://issues.apache.org/jira/browse/MYFACES-1549?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Marinschek resolved MYFACES-1549. ---------------------------------------- Resolution: Fixed > MyFaces-API issue: getValue of UIInput > -------------------------------------- > > Key: MYFACES-1549 > URL: https://issues.apache.org/jira/browse/MYFACES-1549 > Project: MyFaces Core > Issue Type: Bug > Components: JSR-127 > Affects Versions: 1.1.5 > Reporter: Martin Marinschek > Assigned To: Martin Marinschek > Fix For: 1.1.6-SNAPSHOT > > > UIOutput currently has the following code: > public Object getValue() > { > if (_value != null) return _value; > ValueBinding vb = getValueBinding("value"); > return vb != null ? (Object)vb.getValue(getFacesContext()) : null; > } > UIInput has the following code: > public void setValue(Object value) > { > setLocalValueSet(true); > super.setValue(value); > } > My problem (pseudo code): > 1) user enters an empty string in an input-component: "" > 2) conversion and validation phase: "" --> setValue(null); > isLocalValueSet = true; setSubmittedValue(null); > 3) validation fails in some component on the page --> update model > phase is skipped > 4) renderer calls getValue(); --> getValue() evaluates the > value-binding, as the local-value is 'null', and I get the > default-value of the bean shown again > proposed solution: > UIInput overwrites getValue of UIOutput: > public Object getValue() > { > if (isLocalValueSet()) return _value; > ValueBinding vb = getValueBinding("value"); > return vb != null ? (Object)vb.getValue(getFacesContext()) : null; > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.