【问题标题】:Export to XLS with JSF2 and RichFaces使用 JSF2 和 RichFaces 导出到 XLS
【发布时间】:2011-05-19 13:42:22
【问题描述】:

我有一个基于 JSF2 和 RichFaces 的应用程序;我开发了一个使用 POI 以 PDF 格式导出一些数据的流程。

在我的 XHTML 中,我调用了一个方法:

<rich:modalPanel>
    ...
    <p:commandButton image="/images/excel.png" action="#{managedBean.doXLS}"         ajaxSingle="true" rendered="true" value="Exportar a XLS">
        <f:setPropertyActionListener target="#{statisticsBean.optionToExport}"     value="1"/>
    </p:commandButton>
    ...
</rich:modalPanel>

我是这样通过 Java 调用的:

... // create XLS
response.setHeader( "Content-Disposition", "attachment; filename=\"" +       nombreFichero + ".xls\"" );
response.setContentType("application/vnd.ms-excel");

OutputStream o = response.getOutputStream();

if ( workbook!=null && o!=null)
    workbook.write(o);
o.flush();
o.close();

if (!FacesContext.getCurrentInstance().getResponseComplete())
FacesContext.getCurrentInstance().responseComplete();

没有抛出异常,但我的屏幕上什么也没有发生。有什么问题?


已解决:

好的,在与@BalusC(谢谢)交谈后,我无法响应“rich:modalPanel”中的文件,因为该文件是由 ajax 创建的。 NO MATHERS IF IS ajaxsingle 与否。

【问题讨论】:

    标签: java jsf-2 richfaces download


    【解决方案1】:

    好的,在与@BalusC(谢谢)交谈后,我无法响应“rich:modalPanel”中的文件,因为该文件是由 ajax 创建的。 NO MATHERS IF IS ajaxsingle 与否。

    【讨论】:

      【解决方案2】:

      我是这样做的:

      <a4j:commandButton id="printDocument" value="Pdf link" 
        action="generatePdf" styleClass="button" oncomplete="openPdf();" rendered="/>
      

      OpenPDF 定义为:

      <script language="JavaScript">
          //<![CDATA[
              function openPdf() {
                  pdfWindow = window.open('#{pdfDocument.documentLink}');
                  if (window.focus) {pdfWindow.focus()};
                  return false;
              }
              //]]>
          </script>
      

      这是使用 Richfaces、Facelets 和 Spring Webflow。动作 generatedPdf 调用一个 webflow 动作,该动作调用一个 Java 类,该类在磁盘的某处生成 pdf 文档。 pdfDocument.documentLink 包含一个 Servlet 的路径,该 Servlet 对内容处理执行通常的操作并将结果流式传输到浏览器。

      【讨论】:

        猜你喜欢
        • 2011-02-20
        • 1970-01-01
        • 2011-05-30
        • 2012-05-30
        • 2011-11-26
        • 1970-01-01
        • 2013-04-03
        • 2011-08-24
        • 2011-05-04
        相关资源
        最近更新 更多