У меня проблема с одним из моих SelectOneMenu в JSF.
У меня есть компонент SelectOneMenu, связанный со списком Enums, и значение, данное для selectOneMenu, является элементом массива, подобным этому:
<h:selectOneMenu id="menuOperatorOne" value="#{operandExpression.operators[0]}">
<f:selectItem itemValue="#{null}" itemLabel=" -- Select "></f:selectItem>
<f:selectItems value="#{currentBean.listComparaisonOperators}"/>
<f:ajax render="expressionForm"/>
</h:selectOneMenu>
Проблема в том, что возвращают только String (имя Enum как String, а не сам объект).
Я знаю, что код работает хорошо, если я устанавливаю значение selectOneMenu впростая переменная типа Enum Type в моем managedBean, например:
<h:selectOneMenu id="menuOperatorOne" value="#{currentBean.myEnumObject}">
Таким образом, в моем понимании все перечисления являются хорошими, а не источником проблемы.
Как я могу получить перечисление объекта вэлемент массива?
Спасибо за вашу помощь!
РЕДАКТИРОВАТЬ после дублирования предложения:
Говоря, у нас есть две переменные bean, такие как;
private EnumType singleEnumObject;
private List<EnumType> listEnumObjects;
и у нас есть два selectOneMenu в JSf-подобном (listComparaisonOperators содержит мои значения Enum);
<h:selectOneMenu id="menuOperatorOne" value="#{currentBean.singleEnumObject}">
<f:selectItems value="#{currentBean.listComparaisonOperators}"/>
</h:selectOneMenu>
<h:selectOneMenu id="menuOperatorTwo" value="#{currentBean.listEnumObjects[0]}">
<f:selectItems value="#{currentBean.listComparaisonOperators}"/>
</h:selectOneMenu>
Как вы можете видеть, они практически одинаковы, только второесвязанный с массивом элементов в качестве значения.Но у каждого из них есть Enums в selectItems и та же самая обработка.
first selectOneMenu вернет Enum Object в "singleEnumObject", что хорошо.
второй selectOneMenu вернет String в "listEnumObjects [0]" (перечислите имя в виде строки).Разве я не должен получить свой объект Enum, как первый SelectOneMenu?
Кто-нибудь имеет представление о том, что я здесь делаю неправильно?Может кто-нибудь предоставить мне пример, где он получает Enum Object, используя элемент массива в значении SelectOneMenu (а не в одной переменной)?
Спасибо.