带有selectManyCheckbox的Jsf动态表单

时间:2011-02-09 22:41:03

标签: jsf jsf-2 dynamic-forms

我正在使用Mojarra,PrimeFaces和Tomcat 6.x开发JSF 2.0项目

我只使用selectManyCheckbox创建了一个动态表单。

我有以下代码:

<ui:repeat value="#{wagent.prArticles}" var="theme">
    <h:selectManyCheckbox layout="pageDirection" styleClass="pressReviewTable" value="#{bean.selectedArticles}">
        <f:selectItems value="#{theme.articles}" var="prArt" itemLabel="#{prArt.prLabel}" itemValue="#{prArt.id}" itemLabelEscaped="false"/>
    </h:selectManyCheckbox>
</ui:repeat>

selectedArticles是实体列表。

我在网上看到,selectManyCheckbox的值可以指向String[]List<String>。 使用此代码,selectedArticles不包含所有选中的值,只包含最新检查的组。

如何获取所有选中的值?

1 个答案:

答案 0 :(得分:2)

基本上,value必须绑定到当前迭代的项目,例如theme

<ui:repeat value="#{wagent.prArticles}" var="theme">
    <h:selectManyCheckbox value="#{theme.selectedArticles}">
        ...
    </h:selectManyCheckbox>
</ui:repeat>

在bean操作方法中,访问#{wagent.prArticles}后面的属性以获取所有选中的值。

当您将值绑定到外部bean时,您现在遇到的内容确实会发生。基本上,JSF将覆盖每个迭代项的检查值,直到最后一项。这就是为什么你只看到最后一个迭代项的选中值。