如何保存选中的多个框值

How to save the checkedmultiple boxes values

我有以下数据表,动态显示复选框和带有这些复选框的记录。 现在我想获取所选框的值并将这些值传递给其他 web 服务。 图片中的问题及其数据是动态的。

                <p:row styleClass="ui-panelgrid-cell" rowspan="3">
                    <p:column>
                        <div style="overflow: auto; width: 100%;">                              
                            <p:dataTable var="tQuestions"
                                value="#{userPreferences.availableQuestions}"
                                emptyMessage="No Questions Found." id="sTable">
                                <p:column>
                                    <h:outputText id="sName" styleClass="cellLabelMand"
                                         value="#{tQuestions.shortText}" />
                                <h:outputText value="&lt;br/&gt;&lt;br/&gt;" escape="false" />                                              
                                        <ui:repeat var="tCategoryList" value="#{tQuestions.categoryList}">
                                        <p:selectOneRadio id ="userChoice" value="checked"  />
                                        <h:outputText value="#{tCategoryList.categoryValue}" />
                                        </ui:repeat>                                                 
                                </p:column>                                                                 
                                </p:dataTable>                              
                        </div>
                    </p:column>
                </p:row>

如果您的模型在 Category 实体中有一个布尔值 属性,只需执行以下操作(如@BalusC 所说):

<p:selectOneRadio id ="userChoice" value="#{tCategoryList.categoryBooleanValue}" />

否则,您将必须在表示层中创建一个新的 CategoryWithAnswer class,并使用 属性 来存储每个用户的选择。 您可以扩展您的类别模型 class。您将必须为 userPreferences.availableQuestions 列表的每个元素重新填充类别列表。

总而言之,您的模型中必须有一些 属性 bean 来存储用户答案。通常这个 属性 存在于模型中 作为持久实体 bean 的一部分。