2016-03-11 144 views
1

我正在使用Primefaces 5.0和JSF 2.0。primefaces - 來自多選數據表的選擇列表返回null

你好,我有一個定義如下:

<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> 

和執行該選擇列表中的動作和定義如下:

<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> 

裏面的後盾豆,我有函數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

我已將selectedPackages值從List更改爲常規數組,但我仍然將其設爲null。 – user3757114

+0

下一次,請創建[mcve] ....您發佈的代碼沒有顯示您發佈的解決方案,因此我們永遠無法分辨和/或提供幫助。 – Kukeltje

回答

0

我找到了解決方案。 commandbutton和dataTable需要與列表更新相同的形式。