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.

Reply via email to