MyFaces-API issue: getValue of UIInput
--------------------------------------
Key: MYFACES-2161
URL: https://issues.apache.org/jira/browse/MYFACES-2161
Project: MyFaces Core
Issue Type: Bug
Components: JSR-252
Affects Versions: 1.2.6
Reporter: Kaeri Johnson
Issue was seen and fixed in Myfaces 1.1.6 already- but seems to still exist in
1.2.6
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.