primefaces - 来自多个选择数据表的选择列表返回null

时间:2016-03-11 16:05:45

标签: jsf-2 primefaces datatable

我正在使用Primefaces 5.0和JSF 2.0。

您好我的定义如下:

<p:dataTable id="activePackagesBeanTable"
                            value="#{packageManagerLocal_GetAllPackages.reviewList}"
                            var="activePkg"
                            selection="#{packageManagerLocal_GetAllPackages.selectedPackages}"
                            rowKey="#{activePkg.hashCode()}">
                            <p:ajax event="rowSelectCheckbox" update=":mainPanel:delegateButtonForm" />
                            <p:ajax event="rowUnselectCheckbox" update=":mainPanel:delegateButtonForm" />
                            <p:ajax event="toggleSelect" update=":mainPanel:delegateButtonForm" />
                            <p:column selectionMode="multiple" style="width:16px;text-align:center"/>
</p:dataTable>

和a对该选择列表执行操作,并定义如下:

<p:commandButton id="delegateDoAction1" styleClass="button_blue"
                            type="submit" ajax="false" immediate="true" value="Delegate"
                            action="#{packageManagerLocal_GetAllPackages.reassign}"
                            title="#{hints_bundle['button.package.reassign']}"
                            execute="activePackagesBeanTable">
                        </p:commandButton>

在backing bean中,我的函数reassion()定义如下。

List<MyObject> selectedPackages;

// Getters and setters for selectedPackages
.....
public String reassign() {
    String method = "reassign";
    logger.entering(this.getClass().getName(), method);
    FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("packageList", getSelectedPackages());
    logger.entering(this.getClass().getName(), method, "SWITCH");
    return "reassign";
}

但是,当我使用Eclipse调试时,我的getter为selectedPackages返回一个空值?这是为什么?我做错了什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。命令按钮和dataTable需要采用相同的形式才能更新列表。