f:selectItem下拉列表中的默认空白项

时间:2015-08-04 19:33:59

标签: jsf selectonemenu

我正在创建一个下拉菜单。我使用hideNoSelectionOption,noSelectionOption,itemLabel =“”和itemValue =“#{null}”等属性来获得一个空值的默认值,这是页面加载时显示的第一个项目。相反,当页面加载时,显示的默认项目是列表中的最后一项。我有一个修复是在列表中放置一个空白项目,但我不喜欢该修复,因为我希望空白项目在列表中的第一个,并在页面加载时显示默认项目。有什么建议吗?

                 <tr class="contentRow">
                    <td><span> <h:selectOneMenu
                    styleClass="selectOneMenuLeft" id="menuProgramType" value="#{searchBean.selectedSearchType}"
                    onchange="javascript:displayDivs();" hideNoSelectionOption="true">
                    <f:selectItem noSelectionOption="true" itemLabel=""/>
                    <f:selectItem itemLabel="Item1"  />
                    <f:selectItem itemLabel="Item2" />
                    <f:selectItem itemLabel="Item3"  />
                    <f:selectItem itemLabel="Item4" />
                    </h:selectOneMenu></span></td>

                    <td><span> <h:selectOneMenu
                    styleClass="selectOneMenuLeft" id="menuSystemOfOriginType" value="#{searchBean.selectedSearchType}"
                    onchange="javascript:displayDivs();" hideNoSelectionOption="true" >
                    <f:selectItem itemLabel="" itemValue="#{null}"  noSelectionOption="true" />
                    <f:selectItem itemLabel="FirstItem"  />
                    <f:selectItem itemLabel="SecondItem" />
                    <f:selectItem itemLabel="LastItem"  />
                    </h:selectOneMenu></span></td>
                </tr>

1 个答案:

答案 0 :(得分:1)

您的所有商品都没有价值。因此,您的所有商品都匹配&#34;空白&#34;案件。客户端会将最后一个显示为已选中。

赋予物品合理的价值。如果您打算将标签用作值,那么就这样做。

<f:selectItem itemValue="Item1" />
<f:selectItem itemValue="Item2" />
<f:selectItem itemValue="Item3" />
<f:selectItem itemValue="Item4" />

即,未指定时,项目标签将默认为项目值。

另见:

对具体问题

无关javascript:伪协议是不必要的。它是自1998年HTML4以来的默认值。