Пустой элемент по умолчанию в раскрывающемся списке f: selectItem

Я создаю выпадающее меню. Я использую такие атрибуты, как 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>

person ElGatoGabe    schedule 04.08.2015    source источник
comment
В дополнение к ответу ниже: нет ли противоречия между hideNoSelectionOption="true" и <f:selectItem noSelectionOption="true" … />?   -  person Kukeltje    schedule 04.08.2015


Ответы (1)


Все ваши предметы не имеют ценности. Следовательно, все ваши элементы соответствуют пустому делу. Клиент покажет последний как выбранный.

Дайте предметам разумную ценность. Если вы собираетесь использовать метку как значение, просто сделайте это.

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

А именно, если не указано, метка элемента по умолчанию будет равна значению элемента.

Смотрите также:


Не связанный с конкретной проблемой, этот псевдопротокол javascript: не нужен. Это значение по умолчанию уже с HTML4 в 1998 году.

person BalusC    schedule 04.08.2015