2016-11-23 81 views
0

我有一個List列表。可以說學生和地址。一對多的關係。在我的數據表中有3列與學生相關的名稱,姓氏,年齡,並且在單個列中,我需要顯示地址,並將以下字段連接起來,例如地址1,地址2,城市,國家。現在我需要導出表格使用<p:dataExporter>。當我嘗試導出爲Excel地址對應的列導出爲對象(org.primefaces.uirepeat。等等等等..)Primefaces數據導出程序:導出數據問題

我的代碼是

<p:dataTable value="#{manager.studentList}" var="item" id="studentData"> 
      <p:column> 
       <f:facet name="header">Name</f:facet> 
       <h:outputText value="#{item.name}" /> 
      </p:column> 
      <p:column> 
       <f:facet name="header">Surname</f:facet> 
       <h:outputText value="#{item.surname}" /> 
      </p:column> 
      <p:column> 
       <f:facet name="header">Age</f:facet> 
       <h:outputText value="#{item.age}" /> 
      </p:column> 
      <p:column> 
       <f:facet name="header">Address</f:facet> 
       <ui:repeat value="#{studentBean.addressList}" var="address"> 
       <h:outputText value="#{address.address1}" /> <br /> 
       <h:outputText value="#{address.address2}" /> <br /> 
       <h:outputText value="#{address.city}" /> <br /> 
       <h:outputText value="#{address.country}" /> 
       </ui:repeat> 
      </p:column> 
     </p:dataTable> 

     <h:commandLink> 
     <p:graphicImage name="/images/excel.png" /> 
     <p:dataExporter type="xls" target="studentData" fileName="studentdetails" pageOnly="true"/> 
    </h:commandLink> 

建議我一些方法來出口。即使我嘗試了c:forEach和列。

回答

0
<p:dataTable value="#{manager.studentList}" rowIndexVar="index" var="item" id="studentData"> 
     <p:column> 
      <f:facet name="header">Name</f:facet> 
      <h:outputText value="#{item.name}" /> 
     </p:column> 
     <p:column> 
      <f:facet name="header">Surname</f:facet> 
      <h:outputText value="#{item.surname}" /> 
     </p:column> 
     <p:column> 
      <f:facet name="header">Age</f:facet> 
      <h:outputText value="#{item.age}" /> 
     </p:column> 
     <p:column> 
      <f:facet name="header">Address</f:facet> 
      <c:forEach var="address" items="#{studentBean.addressList.get(index).address}"> 
       <h:outputText value="#{address.address1}" />, 
       <h:outputText value="#{address.address2}"/>, 
       <h:outputText value="#{address.city}" />, 
       <h:outputText value="#{address.country}" /> 
      </c:forEach> 
     </p:column> 
    </p:dataTable> 

    <h:commandLink> 
    <p:graphicImage name="/images/excel.png" /> 
    <p:dataExporter type="xls" target="studentData" fileName="studentdetails" pageOnly="true"/> 
</h:commandLink> 

我想用C:的forEach是確定