2015-08-25 42 views
0

我有一個數據表是這樣的:如何從primefaces中的數據表變量對象獲取列表?

<p:dataTable id="datatableid" value="#{manageBean.employeeList}" var="employeeObj" > 
         <p:column style="width:10%;font-weight:bold"> 
          <h:outputText value="#{employeeObj.firstName}-#{employeeObj.orgEmployeeId}"/> 
         </p:column> 

         <p:columns value="#{manageBean.fetchDataList(employeeObj)}" var="dataObj"> 
          <h:outputText value="#{dataObj.status}"/> 
         </p:columns> 

        </p:dataTable> 

我bean是:

public List<Attendance> fetchDataList(Employee empObj) 
     { 
      System.out.println("**** Inside fectch attendance data **** "+empObj.getName()); 
      List<Attendance> attendanceList = new ArrayList<Attendance>(); 
      return attendanceList; 
     } 

在運行時,在syso我得到空指針異常,因爲empObj是給空。

如何獲得empObj對象的確切值?

將datatable變量(var)作爲參數傳遞給fetchDataList方法的正確方法是什麼?

+0

我沒有測試之前建議,但嘗試改變'值= 「#{manageBean.fetchDataList(employeeObj)}」''到值=「#{manageBean.fetchDataList(#{} employeeObj)} 「';如果不起作用,請將'Employee empObj'改爲'Object empObj'。 –

+0

您嘗試以錯誤的方式使用'columns'標籤。查看PrimeFaces展示如何使用它。 – Kukeltje

+0

這裏有一個重大的概念錯誤。表格每行不能有不同的列。這些列將在每個表格的基礎上定義。 – BalusC

回答

0

感謝評論傢伙。我自己解決了這個問題。

我爲列標記創建了一個新列表,並在Employee pojo內創建了MAP,並使用該MAP傳遞了鍵並獲得了值。

<p:dataTable id="datatableid" value="#{manageBean.employeeList}" var="employeeObj" > 
         <p:column style="width:10%;font-weight:bold"> 
          <h:outputText value="#{employeeObj.firstName}-#{employeeObj.orgEmployeeId}"/> 
         </p:column> 

         <p:columns value="#{manageBean.newList}" var="dataObj"> 
          <h:outputText value="#{employeeObj.getMap().get(dataObj.status)}"/> 
         </p:columns> 

        </p:dataTable>