Jsf p:选择多个复选框预加载

Jsf p:选择多个复选框预加载,jsf,primefaces,Jsf,Primefaces,对于一个项目,我有一个默认子项目列表,例如设计、实施、测试,或者我也可以定义自己的子项目。我将子项目存储在数据库中,编辑此项目时,我希望将所有默认子项目加载到数据库中,但之前存在的子项目已选中 以下是我的.xhtml: <p:selectManyCheckbox value="#{add_project.selectedItems}" id="selectedSubprojects" layout="p

对于一个项目,我有一个默认子项目列表,例如设计、实施、测试,或者我也可以定义自己的子项目。我将子项目存储在数据库中,编辑此项目时,我希望将所有默认子项目加载到数据库中,但之前存在的子项目已选中

以下是我的.xhtml:

<p:selectManyCheckbox value="#{add_project.selectedItems}"
                      id="selectedSubprojects"
                      layout="pageDirection"
                      converter="sub_conv_add_subproject">

    <f:selectItems value="#{add_project.availableItems}"
                   var="wws"
                   itemValue="#{wws}"
                   itemLabel="#{wws.subprojectName}"/>

</p:selectManyCheckbox>

<p:selectBooleanCheckbox id="checkBoxOtherUpdate" itemLabel="Other" value="#{add_project.checked}">
    <p:ajax event="change" update="hiddingPanel"/>
</p:selectBooleanCheckbox>

<p:panel id="hiddingPanel">
    <h:panelGrid columns="2" rendered="#{add_project.checked}">
        <p:inputText value="#{add_project.personalizedSubproject}"
                     id="personalizedSubprojectName"
                     styleClass="inputFieldWithoutMargin"/>

        <h:commandButton value="Submit" action="#{add_project.submit}" styleClass="button">
            <f:ajax execute="subprojectPanelGrid" render="subprojectPanelGrid msgs2" />
        </h:commandButton>
    </h:panelGrid>
</p:panel>
是所选子项目的列表,availableItems是包含所有默认子项目的列表


你能给我一些建议吗?

我刚刚浏览了selectManyCheckbox代码,它应该是所有可用项的复选框,子项目应该是选中项。你有这个输出吗?是否需要其他内容?是的,selectedItems应为选中项,但我想要的是,当我显示selectManyCheckbox时,根据我在数据库中的内容,复选框中的某些项已被选中。如果可用项来自您的数据库,则您应该有正确的结果。渲染selectManyCheckbox时,您现在看到了什么?您将DB数据放在哪个属性中?以下是我想要的示例:我在selectMultipleCheckbox中有以下项目:A、B、C。我单击B和C,然后将它们添加到数据库中。现在,我想编辑我的选择,以便显示A、Bselected、Cselected。您应该将从DB获取的所选元素放入availableItems,并进行selectManyCheckbox更新。