JSF+iReport 报表的展示(一)
public void DOCX(ActionEvent actionEvent) throws JRException, IOException{ HttpServletResponse httpServletResponse=(HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.addHeader("Content-disposition", "attachment; filename=report.docx"); ServletOutputStream servletOutputStream=httpServletResponse.getOutputStream(); JRDocxExporter docxExporter=new JRDocxExporter(); docxExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); docxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, servletOutputStream); docxExporter.exportReport(); FacesContext.getCurrentInstance().responseComplete(); } 上面的程序中注意的是,最后必须要加上FacesContext.getCurrentInstance().responseComplete(),否则会产生
getOutputStream() has already been called for this response
关于ireport的设计细节可以参考iReport的文档