Java 使用JSF2和RichFaces导出到XLS
我有一个基于JSF2和RichFaces的应用程序;我开发了一个使用POI导出PDF格式数据的过程 在我的XHTML中,我调用了一个方法: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">
<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执行内容处置的常规操作,并将结果流式传输到浏览器