JSF+iReport 报表的展示(一)
来源:互联网 发布:php获取访问者域名 编辑:程序博客网 时间:2024/06/05 14:16
最近在做的项目中用到了JSF+iReport生成报表且导出报表的技术.大的技术难点没有什么,但是有很多小的细节很搞人,下面对整个流程以及注意的地方做个简单的总结:
步骤
(1)下载最新的iReport,且安装(http://community.jaspersoft.com/download)
(2)用iReport设计报表模板(http://community.jaspersoft.com/wiki/designing-report 有个简单的例子,可以作为参考)
(3)将以下包加入WEB-INF/lib中。
commons-beanutils-1.7.jar;commons-collections-2.1.jar;commons-digester-1.7.jar;commons-logging-1.0.2.jar;commons-logging-api-1.0.2.jar;itext-1.3.1.jar;jasperreports-1.3.3.jar;jdt-compiler-3.1.1.jar;jxl-2.6.jar;png-encoder-1.5.jar;poi-2.0-final-20040126.jar
以上包是jasperReport必须。
(4)编写xhtml文件,样例代码如下:
<h:head> <title>Facelet Title</title> </h:head> <h:body> <h:form> <h:commandbutton actionlistener="#{demoBean.DOCX}" value="Docx" ajax="false" /> </h:form> </h:body>
上面的例子中一定要注意的是必须有ajax="false"属性(5)编写manager bean
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的文档
- JSF+iReport 报表的展示(一)
- iReport 报表初级一
- ireport报表一
- jsf利用ireport开发报表的时候爆发:java.lang.IllegalStateException错误
- iReport的(报表结构)
- ireport报表系统及与SpringMVC的整合(一)
- ireport 报表的结构介绍
- IReport的子报表设置
- 关于iReport报表的分页
- JSP中调用Ireport报表文件并展示效果源码
- ireport+jasperreports报表开发总结一(Struts2)
- Jasper+ireport动态报表学习(一)
- iReport连接数据库报表开发一
- 报表 ireport
- JapertReports & iReport的开源报表实战
- JapertReports & iReport的开源报表实战
- JapertReports & iReport的开源报表实战
- JapertReports & iReport的开源报表实战
- .Net Membership介绍
- 查找——二分查找
- c#截取取变量指定位上的的值-范例
- 个人总结
- Android QuickAction效果简单实现
- JSF+iReport 报表的展示(一)
- PT与PX区别
- Java模拟异步消息的发送与回调
- 海思开发板wince平台实现照相机功能
- java字符串常用函数。
- JAVA 接口2
- Ubuntu 12.04安装MySQL,JDK 7,Eclipse搭建android开发环境
- DP总结(1) 01背包 完全背包 多重背包
- Oracle GoldenGate 安全性配置系列:利用 CMDSEC 文件控制 GoldenGate 命令的用户访问权限