2017-08-16 25 views
0

を介してBeanにパラメータを送信できません。主キーとしてIDを持つバックエンドのArraylistによってデータが取り込まれています。行が展開されると、そのID固有の行が別のテーブルで検索され、すべての行が表示されなければなりません。値の属性にidをパラメータとして渡そうとすると、クラスキャスト例外が発生します。JSFからDatatable値属性

はここに助けてください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タグの中で以下の行をパラメータとして渡し、#{statusList.getScenarioStatusList(data.id)}の代わりにsub datatableで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クラスにあった。助けてくれてありがとう。 :) –