javax.faces.FacesException: значение должно быть массивом или коллекцией
Я получаю ошибку:
javax.faces.FacesException: значение 'frmrapport:type' должно быть массивом или коллекцией
из файла XHTML:
<p:selectManyMenu id="type" required="true"
value="#{userReporting.getTypeParId(userReporting.selected)[0].nomType}">
<f:selectItem itemLabel="co" itemValue="co" />
<f:selectItem itemLabel="pi" itemValue="pi" />
<f:selectItem itemLabel="si" itemValue="si" />
</p:selectManyMenu>
из бобов Java:
public List getTypeParId(int id){
return this.genTypeFacade.getTypeParId(id);
}
проблема в том, что бин List
и я не могу преобразовать список в String[]
,
1 ответ
userReporting.getTypeParId(userReporting.selected)
возвращает List
, Вы не можете получить доступ List[0]
, вы должны использовать List#get(int index)
,
value="#{userReporting.getTypeParId(userReporting.selected).get(0).nomType}"
Кроме того, будьте осторожны с дженериками: лучше указать, что содержит возвращаемую коллекцию, то есть:
public List<Type> getTypeParId(int id){
return this.genTypeFacade.getTypeParId(id);
}
Еще одно "также": ваш метод getTypeParId
возвращает более 1 типа? Если да, это следует назвать getTypesParId
,