myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Kaltepoth (JIRA)" <...@myfaces.apache.org>
Subject [jira] Updated: (MYFACES-2927) Invalid handling of null values in listboxes and menus
Date Tue, 21 Sep 2010 06:49:36 GMT

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

Christian Kaltepoth updated MYFACES-2927:
-----------------------------------------

    Status: Patch Available  (was: Open)

> Invalid handling of null values in listboxes and menus
> ------------------------------------------------------
>
>                 Key: MYFACES-2927
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2927
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.0.1
>            Reporter: Christian Kaltepoth
>
> I discovered that MyFaces doesn't seem to handle null values correctly in listboxes and
menus.
> See the following example showing a h:selectOneMenu used to select an enum value:
>   @ManagedBean
>   @RequestScoped
>   public class TestBean {
>      public enum Level {
>         HIGH, MEDIUM, LOW
>      }
>      private Level level;
>      public String action() {
>         FacesContext.getCurrentInstance().addMessage(null, 
>               new FacesMessage("Submitted level: " + level));
>         return null;
>      }
>   }
> And the following view:
>   <h:selectOneMenu value="#{testBean.level}" label="Level">
>     <f:selectItem itemValue="#{null}" itemLabel="Unknown"/>
>     <f:selectItem itemValue="HIGH"    itemLabel="High"/>
>     <f:selectItem itemValue="MEDIUM"  itemLabel="Medium"/>
>     <f:selectItem itemValue="LOW"     itemLabel="Level"/>
>   </h:selectOneMenu>
>   <h:commandButton action="#{testBean.action}" value="Go"/>
> Clicking the "Go" button will result in the validation error: "Level: 'Unknown' must
be convertible to an enum."
> If the value of the select item is null, MyFaces won't render the value attribute of
the option and so the browser will submit the label as its value:
>   <select id="levelForm:level" name="levelForm:level" size="1">	
>     <option selected="selected">Unknown</option>	
>     <option value="HIGH">High</option>	
>     <option value="MEDIUM">Medium</option>	
>     <option value="LOW">Level</option>
>   </select>
> Mojarra instead renders an empty value attribute in this situation:
>   <option value="" selected="selected">Unknown</option>
> I've created a patch fixing this issue against the current trunk of myfaces-shared and
attached it to this ticket.
> You can see the sample application reproducing this issue here:
> http://github.com/chkal/myfaces-tests/tree/menu-null-value
> And download it here:
> http://github.com/chkal/myfaces-tests/archives/menu-null-value

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message