从表中导出primefaces 数据,列内容在ui :repeat

标签 primefaces facelets mojarra

我有一个主细节结果集,我在数据表上显示。

详细信息被提取并在其中呈现,以组合成一个单独的输出字符串,保留在一列中。

<p:column>
  <f:facet name="header">BF Order Contents</f:facet>
  <ui:repeat value="#{order.listOfOrderDetails}" var="orderitem" varStatus="orderitemstatus" >
    <h:outputText value="#{orderitem.product.brand.name}-#{orderitem.product.name}#{orderitemstatus.last ? '':', '}" />
  </ui:repeat>
</p:column>

在数据表上,该列显示为“某些品牌-某些产品,其他品牌-其他产品”

但是当我导出到 EXCEL 时,我看到:

com.sun.faces.facelets.component.UIRepeat@783622ba

在那一栏中。

有没有人知道我如何克服这个问题(仅在 xhtml 中)。我不想更改支持 bean 以生成详细信息字符串。

顺便说一句:我在 PF3.2、Mojarra 2.1.8、EL 2.2.1-b04、JDK1.7、Tomcat7

谢谢

最佳答案

可以通过以下方式解决。

  • 不应将具有 ui:repeat 的列设为可导出,即为 p:column 设置 exportable="false"属性。
  • 增加一列显示字符串属性(编写业务逻辑将字符串列表转换为逗号分隔的字符串并将其设置为字符串属性)
  • 将样式设置为 display:none;对于新列。
  • 所以在 ui 显示期间,将显示前一列,在导出期间将显示新列,显示逗号分隔列表。
  • 关于从表中导出primefaces 数据,列内容在ui :repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939948/

    相关文章:

    html - 带有大对话框的 PrimeFaces - 如何正确执行此操作?

    java - PrimeFaces 3.0 - f :ajax Ajax Group not receiving events from p:commandButton or p:commandLink

    java - 在heroku上扩展SpringWebFlow应用程序时出现问题

    java - 添加下拉列表框 - 问题初学者

    java - JSF 强制渲染值表达式

    JSF 2.0 : Passing composite component attribute to inner composite component

    JSF2 : how achieve site-wide viewParam handling policy using a template

    java - 我如何让 "p:focus"在这个简单的应用程序中正常工作(目前根本不是 "focusing")

    jsf - 用户界面 :repeat and h:panelGrid

    java - Servlet Faces Servlet 的错误 StandardWrapperValve[Faces Servlet] :PWC1406: Servlet. service() 引发异常