的值必须是数组或集合(javax.servlet.ServletException)

的值必须是数组或集合(javax.servlet.ServletException),java,primefaces,Java,Primefaces,我收到javax.faces.FacesException:“groupList”的值必须是数组或集合错误。我已经在谷歌上搜索过了,但我还是不知道,因为我似乎有一个集合:它是列表,而且我在调试器中看到它被填充了 form.xhtml: <p:selectManyCheckbox id="groupList" value=""> <f:selectItems value="#{formBean.groups}"/> </p:selectManyCheckbox

我收到
javax.faces.FacesException:“groupList”的值必须是数组或集合
错误。我已经在谷歌上搜索过了,但我还是不知道,因为我似乎有一个集合:它是列表,而且我在调试器中看到它被填充了

form.xhtml:

<p:selectManyCheckbox id="groupList" value="">
    <f:selectItems value="#{formBean.groups}"/>
</p:selectManyCheckbox>

formBean.java:

...
private List<String> groups;

...
public void initFormBean()
{
    groups = repository.getAllGroups(); // debugger info: groups = (java.util.ArrayList) "size = 138"
}

...
public List<String> getGroups() {
    return groups;
}

public void setGroups(List<String> groups) {
    this.groups = groups;
}
。。。
私人名单组;
...
public void initFormBean()
{
groups=repository.getAllGroups();//调试器信息:groups=(java.util.ArrayList)“size=138”
}
...
公共列表getGroups(){
返回组;
}
公共void集合组(列表组){
这个组=组;
}

我猜您需要通过设置p:selectManyCheckbox标记的value属性来绑定复选框的值。这样,它就有了一个地方来存储已选择的可能项目


另请参见

答案是正确的,但请下次发布完整的stacktrace@Andrej如果答案正确,请不要忘记接受答案。最后,在bean@AQndrej:在得到答案并接受后,您从根本上修改了问题。这是不好的,因为现在的答案与问题不符了。你的“终于成功了…”是一个新问题的新答案。我将恢复您的修改。您也不需要像添加“UPD”那样更改标题