我正在使用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返回一个空值?这是为什么?我做错了什么?
答案 0 :(得分:0)
我找到了解决方案。命令按钮和dataTable需要采用相同的形式才能更新列表。