You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2009/03/11 00:12:50 UTC

[jira] Resolved: (MYFACES-2161) MyFaces-API issue: getValue of UIInput

     [ https://issues.apache.org/jira/browse/MYFACES-2161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leonardo Uribe resolved MYFACES-2161.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.2.7-SNAPSHOT
         Assignee: Leonardo Uribe

> 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
>            Assignee: Leonardo Uribe
>             Fix For: 1.2.7-SNAPSHOT
>
>
> 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.