Details
- 
        Type:
 Improvement
            
         - 
        Status: Closed
 - 
            Priority:
 Major
                
             - 
            Resolution: Fixed
 - 
            Affects Version/s: 4.0
 - 
            Fix Version/s: EE-4.0.0.GA, 4.1
 - 
            Component/s: ACE-Components
 - 
            Labels:None
 - 
            Environment:Tested on Tomcat
 
- 
                        Assignee Priority:P1
 
Description
                    <h:form>
<ace:simpleSelectOneMenu id="countryIn" value="#{dataBean.country}" required="true">
<f:selectItem itemValue="" itemLabel="--Select--" noSelectionOption="true"/>
<f:selectItem itemValue="1" itemLabel="Canada"/>
</ace:simpleSelectOneMenu>
<h:message for="countryIn"/>
<h:commandButton value="Submit" actionListener="#{formBean.submit}"/>
</h:form>
When an f:selectItem with noSelectionOption="true" is used as a default value for an ace:simpleSelectOneMenu (with required="true"), if the user selects it and submits the form the field isn't considered invalid. So the noSelectionOption doesn't appear to work with ace:simpleSelectOneMenu.
This behaviour should be the same as h:selectOneMenu, where we would see the standard validation message ("Required value...").
Other selection components that use SelectItem's, like ace:selectMenu and ace:comboBox, should also support the noSelectionOption attribute, if appropriate.
<ace:simpleSelectOneMenu id="countryIn" value="#{dataBean.country}" required="true">
<f:selectItem itemValue="" itemLabel="--Select--" noSelectionOption="true"/>
<f:selectItem itemValue="1" itemLabel="Canada"/>
</ace:simpleSelectOneMenu>
<h:message for="countryIn"/>
<h:commandButton value="Submit" actionListener="#{formBean.submit}"/>
</h:form>
When an f:selectItem with noSelectionOption="true" is used as a default value for an ace:simpleSelectOneMenu (with required="true"), if the user selects it and submits the form the field isn't considered invalid. So the noSelectionOption doesn't appear to work with ace:simpleSelectOneMenu.
This behaviour should be the same as h:selectOneMenu, where we would see the standard validation message ("Required value...").
Other selection components that use SelectItem's, like ace:selectMenu and ace:comboBox, should also support the noSelectionOption attribute, if appropriate.
Committed fix to 4.0 trunk at revision 43643. Added support for noSelectionOption in ace:simpleSelectOneMenu.
Testing notes: according to the JSF documentation, noSelectionOption="true" in f:selectItem should cause a validation error if the item is selected AND the component is using required="true".