javax.faces.FacesException:值必须是数组或集合

时间:2017-06-15 14:16:22

标签: jsf selectmanymenu

我收到错误:

  

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 bean的

public List getTypeParId(int id){
    return this.genTypeFacade.getTypeParId(id);
} 

问题是该bean是List,我无法将列表转换为String[]

1 个答案:

答案 0 :(得分:-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