Ошибка тега JSF selectOneMenu при использовании списка - PullRequest
2 голосов
/ 08 марта 2012

Я использую тег JSF h: selectOneMenu для выпадающего списка.

<h:selectOneMenu id="subscriberName" value="#{manageSubscriberInformation.subscriberName}" 
    <f:selectItem itemValue="" itemLabel="" />                            
    <f:selectItems value="#{manageSubscriberInformation.subList}" />
</h:selectOneMenu> 

Объект subList - это список, который я определил в своем классе бинов с помощью методов getter и setters.В моем методе init моего сервлета я заполняю список некоторыми значениями.Но при загрузке страницы я получаю следующую ошибку:

java.lang.IllegalArgumentException: Collection referenced by UISelectItems with binding '#{manageSubscriberInformation.subList}' and Component-Path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/manageSubscriber.jsp][Class: javax.faces.component.UINamingContainer,Id: body][Class: javax.faces.component.html.HtmlForm,Id: c][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: subscriberName][Class: javax.faces.component.UISelectItems,Id: _idJsp143]} does not contain Objects of type SelectItem

Не могу понять, что является причиной проблемы.

1 Ответ

2 голосов
/ 08 марта 2012

Исключение довольно самоочевидно.

java.lang.IllegalArgumentException: коллекция, на которую ссылается UISelectItems (...), не содержит объектов типа SelectItem

#{manageSubscriberInformation.subList} должен возвращать List<SelectItem> или SelectItem[], где SelectItem равно javax.faces.model.SelectItem класс .

Только начиная с JSF 2.0 больше не требуется специально указывать SelectItem.

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

...