2017-08-16 30 views
0

我有一個擴展數據表由來自後端的Arraylist填充,這個數據表有一個id作爲主鍵。當行展開時,必須在另一個表中搜索該特定於id的行,並且必須顯示所有行。當我試圖在值屬性中傳遞id作爲參數時,它給予類拋出異常。無法通過數據表值屬性將參數從JSF發送到Bean

這裏的XHTML代碼

<h:form> 
    <p:dataTable var="data" 
     value="#{trackerList.trackerList}"> 
     <f:facet name="header">Summary</f:facet> 
     <p:column style="width:16px"> 
      <p:rowToggler /> 
     </p:column> 

     <p:column headerText="ID"> 
      <h:outputText value="#{data.id}" /> 
     </p:column> 

     <p:column headerText="Status"> 
      <h:outputText value="#{data.status}" /> 
     </p:column> 

     <p:column headerText="Created Time"> 
      <h:outputText value="#{data.createdTime}" /> 
     </p:column> 

     <p:column headerText="Created By"> 
      <h:outputText value="#{data.createdby}" /> 
     </p:column> 

     <p:column headerText="Updated By"> 
      <h:outputText value="#{data.updatedby}" /> 
     </p:column> 

     <p:rowExpansion> 
      <p:dataTable var="metadata" value="#{statusList.getScenarioStatusList(data.id)}"> 
       <p:column headerText="Requirements"> 
        <h:outputText value="#{metadata.requirements}" /> 
       </p:column> 

       <p:column headerText="Exam Name"> 
        <h:outputText value="#{metadata.examName}" /> 
       </p:column> 

       <p:column headerText="Status"> 
        <h:outputText value="#{metadata.status}" /> 
       </p:column> 

      </p:dataTable> 
     </p:rowExpansion> 
    </p:dataTable> 
</h:form> 

請幫助。

回答

0

我認爲你需要在p:datatable標籤內的下面一行中定義傳遞id作爲參數,而不是#{statusList.getScenarioStatusList(data.id)}在子數據表中你只需要value =「#{yourBean。 scenarioStatusList}」。在loadLists(data.id)方法中填充scenarioStatusList。

<p:ajax event="rowToggle" listener="#{yourBean.loadLists(data.id)}" /> 
+0

試了一下..但仍然存在相同的錯誤...它給錯誤的監聽器方法..它的投擲java.lang.Object;當我試圖在loadList方法內打印列表時,無法將其轉換爲com.beans.ScenarioStatus異常。 –

+0

它的工作..其實鑄造問題是在DAO類。謝謝您的幫助。 :) –

相關問題