#jsp #jsf #dropdown #javabeans
Вопрос:
У меня есть два массива, возвращенных из BeanClass (eventBean): SelectItem[] abc; Объект[] xyz;
Когда я использую массив SelectItem, я получаю список значений в поле с несколькими выборками (ожидаемый)
<h:selectManyListbox size="5" styleClass="selectListBox">
<f:selectItems value='#{eventBean.abc}' />
</h:selectManyListbox>
Но, когда я использую массив объектов, я получаю внутреннюю ошибку сервера 500 в своем JSP (Ошибка)
<h:selectManyListbox size="5" styleClass="selectListBox">
<f:selectItems value='#{eventBean.xyz}' />
</h:selectManyListbox>
Как мы можем использовать данные массива объектов с тегом значения SelectItems?
Ответ №1:
Если элементы-члены вашего компонента выбора не являются экземплярами SelectItem
, дополнительные var
атрибуты и атрибуты элемента должны использоваться для правильной идентификации значения, метки и т. Д. объекта «Выбранный элемент».
<h:selectManyListbox size="5" styleClass="selectListBox">
<f:selectItems value="#{eventBean.xyz}" var="obj" itemLabel="#{obj.name}" itemValue="#{obj}" />
</h:selectManyListbox>
Просто name
замените свойством отображения пользовательского объекта или используйте его toString()
реализацию.