Показать все значения в SelectOneMenu

Показана страница JSF с компонентом selectOneMenu, в котором перечислены все элементы класса enum. Этот класс Enum соответствует городам.

Проблема в том, что я хочу показать одно поле с надписью «Все города», поскольку я показываю *List<City>*. Я не могу добавить значение «Все города», потому что это будет строка.

Таким образом, фактические элементы, отображаемые в SelectOneMenu, например:

Нью-Йорк, Сан-Франциско, Рим, Париж

И желаемый результат будет:

Все города, Нью-Йорк, Сан-Франциско, Рим, Париж

Пример кода:

перечисление:

 public enum City {

    ALL, NYC, SANFRANCISCO,...;

    }

Фрагмент кода страницы JSF:

<h:selectOneMenu id="citiesmenu" value="#{enumBeanStatus.selectedCity}">
<f:selectItems value="#{enumBean.cities}"/>
</h:selectOneMenu>

person jacktrades    schedule 22.01.2013    source источник
comment
Вы можете добавить значение All Cities в свое перечисление. Если это не вариант, вы можете добавить <f:selectItem itemLabel="All Cities" itemValue="#{null}" /> перед <f:selectItems />.   -  person Luiggi Mendoza    schedule 22.01.2013
comment
Как я могу добавить Все города в свое перечисление, если Все города не является городом :) Я думаю, что второй вариант будет фактическим ответом :)   -  person jacktrades    schedule 22.01.2013
comment
Я не знаю, как вы настраиваете перечисление, но просто добавьте ALL_CITIES как часть перечисления. Он может иметь значение, отличное от других городов, например 0 или другое значение по умолчанию, это просто трюк.   -  person Luiggi Mendoza    schedule 22.01.2013
comment
@kauedg, какой код был бы полезен для решения этой проблемы? Это логическая проблема, а не ошибка кода.   -  person Luiggi Mendoza    schedule 22.01.2013
comment
@LuiggiMendoza добавьте второй комментарий к ответу, чтобы я мог его выбрать   -  person jacktrades    schedule 22.01.2013


Ответы (1)


Я не знаю, как вы настраиваете перечисление, но просто добавьте ALL_CITIES как часть перечисления City. Это может иметь значение, отличное от других городов, например 0 или другое значение по умолчанию, это просто уловка. То, как вы обрабатываете различные значения, определяет, является ли оно общим или конкретным.

person Luiggi Mendoza    schedule 22.01.2013