Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JSF2和RichFaces导出到XLS_Java_Jsf 2_Richfaces_Download - Fatal编程技术网

Java 使用JSF2和RichFaces导出到XLS

Java 使用JSF2和RichFaces导出到XLS,java,jsf-2,richfaces,download,Java,Jsf 2,Richfaces,Download,我有一个基于JSF2和RichFaces的应用程序;我开发了一个使用POI导出PDF格式数据的过程 在我的XHTML中,我调用了一个方法: <rich:modalPanel> ... <p:commandButton image="/images/excel.png" action="#{managedBean.doXLS}" ajaxSingle="true" rendered="true" value="Exportar a XLS">

我有一个基于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>
没有抛出异常,但在我的屏幕中没有发生任何事情。有什么问题吗

已解决:


好的,在与@BalusC谢谢交谈之后,我无法响应rich:modalPanel中的文件,因为这是由ajax创建的。如果ajaxsingle与否,则无MATHERS。

好的,在与@BalusC交谈之后,谢谢,我无法响应rich:modalPanel中的文件,因为此文件是由ajax创建的。无论单身与否,都没有母亲。

我是这样做的:

... // 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();
<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和SpringWebFlow。generatedPdf操作调用webflow操作,该操作调用一个Java类,该类在磁盘上的某个位置生成pdf文档。pdfDocument.documentLink包含指向Servlet的路径,Servlet执行内容处置的常规操作,并将结果流式传输到浏览器