【问题标题】:Exporter doesn't work导出器不起作用
【发布时间】:2018-01-29 06:18:54
【问题描述】:

我使用的是旧版本的 PF (3.5),但我无法让 DataExporter 使用属性 selectionOnly="true"

如果我不设置该属性,一切正常,反之亦然我收到此错误:

Caused by: javax.el.ELException: /WEB-INF/views/AreaRiservata/Clinipass/Malattia/malattiaScaricoMandatiTesoreria.xhtml @91,61 value="#{mandato.codCompagnia}": Cannot convert codCompagnia of type class java.lang.String to class java.lang.Integer
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114) ~[jsf-impl-2.1.13.jar:2.1.13]
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:186) ~[jboss-jsf-api_2.1_spec-2.0.9.Final.jar:2.0.9.Final]
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:174) ~[jboss-jsf-api_2.1_spec-2.0.9.Final.jar:2.0.9.Final]
at javax.faces.component.UIOutput.getValue(UIOutput.java:169) ~[jboss-jsf-api_2.1_spec-2.0.9.Final.jar:2.0.9.Final]

我的数据表如下所示:

<p:ajax event="rowSelectCheckbox" update=":formTable:buttons" />
<p:ajax event="rowUnselectCheckbox" update=":formTable:buttons" />
<p:ajax event="toggleSelect" update=":formTable:buttons" />
<p:ajax event="rowSelect" update=":formTable:buttons" />
<p:ajax event="rowUnselect" update=":formTable:buttons" />

<p:column selectionMode="multiple" style="width:16px;text-align:center"/>

<p:column filterMaxLength="4" filterBy="#{mandato.codCompagnia}" sortBy="#{mandato.codCompagnia}" width="75" id="amala">
    <f:facet name="header">
        <h:outputText value="Compagnia" />
    </f:facet>
    <h:outputText value="#{mandato.codCompagnia}" />
</p:column>

<p:column filterBy="#{mandato.codProdotto}" sortBy="#{mandato.codProdotto}" width="75">
    <f:facet name="header">
        <h:outputText value="Prodotto" />
    </f:facet>                  
    <h:outputText value="#{mandato.codProdotto}" />
</p:column>

<p:column filterBy="#{mandato.annoSinistro}" sortBy="#{mandato.annoSinistro}" width="85">
    <f:facet name="header">
        <h:outputText value="Anno Sinistro" />
    </f:facet>                  
    <h:outputText value="#{mandato.annoSinistro}" />
</p:column>

<p:commandButton value="Crea file" ajax="false" icon="ui-icon-document">
    <p:dataExporter type="csv" target="tableScaricoMandatiTesoreria" fileName="Mandati" selectionOnly="true" />
</p:commandButton>

【问题讨论】:

  • @Kukeltje 编辑了我的问题

标签: jsf primefaces jsf-2 datatable


【解决方案1】:

你错过了 dataExporter 组件中的 postProcessor 属性

<p:dataExporter type="csv" target="tableScaricoMandatiTesoreria" postProcessor="#{ExportCbean.postProcessXLS}" fileName="Mandati" selectionOnly="true" />

【讨论】:

  • postProcessor 在 dataExporter 上似乎不是强制性的。即使我不知道在该方法中编写什么代码,我也会尝试一下。
【解决方案2】:

这不是一个实际的修复,但我已经设法通过创建另一个数据表来绕过这个问题

id="tableScaricoMandatiTesoreriaSelected" style="display: none" value="#{malattiaScaricoMandatiTesoreriaModel.selectedMandati}"

然后我在另一个表中更改了ajax的更新:

<p:ajax event="rowSelectCheckbox" update=":formTable:buttons :formTable:tableScaricoMandatiTesoreriaSelected" />
<p:ajax event="rowUnselectCheckbox" update=":formTable:buttons :formTable:tableScaricoMandatiTesoreriaSelected" />
<p:ajax event="toggleSelect" update=":formTable:buttons :formTable:tableScaricoMandatiTesoreriaSelected" />
<p:ajax event="rowSelect" update=":formTable:buttons :formTable:tableScaricoMandatiTesoreriaSelected" />
<p:ajax event="rowUnselect" update=":formTable:buttons :formTable:tableScaricoMandatiTesoreriaSelected" />

导出器现在指向新表:

<p:dataExporter type="xls" target="tableScaricoMandatiTesoreriaSelected" fileName="Mandati" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-11
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多