导出文本然后在Excel中使用datalist,使用dataexporter导出pdf

时间:2014-11-26 13:47:07

标签: primefaces

我正在使用primefaces 3.4.2 jar。我有一个有四列的数据表。在两列中,我有一个datalist,我想导出datalist显示的文本。但是当我导出它时,它会显示以下内容" org.primefaces.component.datalist.DataList@1195cc3"在pdf和xls文件中。

  <p:dataTable emptyMessage="#{messages['empty.result.set']}" id="searchResult" var="row" value="#{managePessoaJuridica.manageableList}" rows="10" paginator="true" paginatorPosition="top" paginatorAlwaysVisible="false" style="display:#{managePessoaJuridica.manageableList == null? 'none': ''}">
        <p:column styleClass="column_icons" exportable="false">
            <p:panelGrid columns="#{pessoaJuridicaController.showSelectAction?3:2}">
                <p:commandButton id="selectAction" icon="ui-icon-circle-check" title="#{messages['action.select']}" action="#{pessoaJuridicaController.select(row.id)}" immediate="true" process="@this" rendered="#{pessoaJuridicaController.showSelectAction}"/>
                <p:commandButton id="editAction" icon="ui-icon-pencil" title="#{messages['action.edit']}" action="#{pessoaJuridicaController.load(row.id)}" immediate="true" process="@this" update="@form"/>
                <p:commandButton id="deleteAction" icon="ui-icon-trash" title="#{messages['action.delete']}" action="#{pessoaJuridicaController.delete(row.id)}" immediate="true" process="@this" update="searchResult"
                    onclick="return confirm('#{messages['confirm.delete.this']} #{messages['pessoa.juridica.view.title']}');" />
            </p:panelGrid>
        </p:column>

        <p:column id="column_nome" sortBy="#{row.nome}" >
            <f:facet name="header">
                <h:outputText id="columnHeader_nome" value="#{messages['pessoa.nome']}"/>
            </f:facet>
            <h:outputText id="nome" value="#{row.nome}">
            </h:outputText>
        </p:column>



        <p:column style="width:0px;">
            <f:facet name="header">
                <h:outputText id="columnHeader_categoriasPessoa" value="#{messages['pessoa.categorias.pessoa']}"/>
            </f:facet>    
                <p:dataList  type="definition" id="categoriasPessoa" var="item" value="#{row.categoriasPessoa}" >
                    <p:column>
                        <h:outputText id="item_categoriasPessoa" value="#{item}" converter="com.domain.configuracao.crud.CategoriaPessoaJsfConverter"/>
                    </p:column>
                </p:dataList>
        </p:column>

        <p:column style="width:0px;">
            <f:facet name="header">
                <h:outputText id="columnHeader_identificacoesPessoa" value="#{messages['pessoa.identificacoes.pessoa']}"/>
            </f:facet>
                <p:dataList type="definition" id="identificacoesPessoa" var="item" value="#{row.identificacoesPessoa}">
                    <p:column>
                    <h:outputText id="item_categoriaIdentificacoes" value="#{pessoaJuridicaController.getCategoriaIdentificacao(item)}" converter="com.domain.configuracao.crud.CategoriaIdentificacaoJsfConverter"/>:
                    <h:outputText id="item_identificacoesPessoa" value="#{item}" converter="com.domain.configuracao.crud.IdentificacaoPessoaJsfConverter"/>
                    </p:column>
                </p:dataList>
        </p:column>
                    <p:column id="column_ativo" sortBy="#{row.ativo}" >
            <f:facet name="header">
                <h:outputText id="columnHeader_ativo" value="#{messages['classe.base.cadastro.ativo']}" />
            </f:facet>
            <h:outputText id="ativo" value="#{row.ativo}" converter="com.BooleanJsfConverter" >
            </h:outputText>
        </p:column>

         <f:facet name="footer">
            <p:menuButton value="#{messages['export.action']}" rendered="#{not empty managePessoaJuridica.manageableList}">
                <p:menuitem value="#{messages['export.spreadsheet']}" ajax="false">
                    <p:dataExporter type="xls" target="searchResult" fileName="export" excludeColumns="0" encoding="ISO-8859-1"/>
                </p:menuitem>
                <p:menuitem value="#{messages['export.pdf']}" ajax="false">
                    <pe:exporter type="pdf" target="searchResult" fileName="export"  excludeColumns="0" encoding="ISO-8859-1"/>
                </p:menuitem>
                <p:menuitem value="#{messages['export.csv']}" ajax="false">
                    <p:dataExporter type="csv" target="searchResult" fileName="export" excludeColumns="0" encoding="ISO-8859-1"/>
                </p:menuitem>
            </p:menuButton>
            <p:spacer width="10"/>
            <h:outputText value="#{fn:length(managePessoaJuridica.manageableList)} #{messages['records.found']}" rendered="#{not empty managePessoaJuridica.manageableList}"/>
        </f:facet>

    </p:dataTable>  

1 个答案:

答案 0 :(得分:1)

  

但是当我导出它时,它会显示以下内容   pdf和中的“org.primefaces.component.datalist.DataList@1195cc3”   xls文件。

显然,Primefaces的数据导出器使用对象的toString()方法来打印其“值(s)”。

建议:

  1. 编写自定义导出程序(推荐

  2. 覆盖toString()的{​​{1}}方法(不建议