struts2整合jasper模版生成PDF导出上载<三>
struts2整合jasper模版生成PDF导出下载<三>
三,编写java程序,生成pdf文件
此处有多钟方式:也可以用poi方式,这里着重介绍两种方式:
(一),直接使用struts2-jasperreports-plugin配合struts2查看下载功能
代码说明:
<param>用于为报表生成传递参数:
u location: 指定jasper文件的路径,且只能写一个路径;
u format: 指定生成的报表格式,有PDF、HTML、XML等;
u dataSource: 指定主报表中数据源的Collection集合,要求Action中必须包含getXXX方法,如public List<Person> getPersonList()方法,同时注意报表中的列字段名必须和Person类的属性名完全一致;
u reportParameters: 传递给报表本身的参数。这个参数名params必须为一个Map类型,并在Action中创建getParams()方法。它的键名应该与报表中$P{}中的名字完全一致,值类型也应该与$P{}的类型一致,这样能保证传递参数正确。由于是Map类型,所以可传递多个参数为报表中的参数赋值;
u contentDisposition: 报表生成方式,有inline和attachment两个值。inline表示使用浏览器在线预览,attachment表示弹出下载窗口提示下载。
u documentName: 如果是下载方式,则为默认下载的文件名,不用带.pdf后缀。
java代码只需要写数据(配置文件中需要的)的产生过程即可
三,编写java程序,生成pdf文件
此处有多钟方式:也可以用poi方式,这里着重介绍两种方式:
(一),直接使用struts2-jasperreports-plugin配合struts2查看下载功能
<!-- pdf 显示 --> <action name="mangerPic" class="com.csair.skypearl.actions.ConvenientVisaAction" method="crateMangerGraphicalData"> <!--<result name="fail" type="json"> <param name="contentType">text/html</param> <param name="root">optStatus</param> </result> --> <result name="fail" type="freemarker"> /WEB-INF/pages/memberShop/visaIndex.ftl </result> <result name="success" type="jasper"> <param name="location">/jasreportTemplete/convenientVisa.jasper</param> <param name="format">${reportType}</param> <param name="dataSource">ffpTravelDetailList</param> <param name="reportParameters">reportParameter</param> </result> </action> <!-- pdf 导出 --> <action name="mangerpdf" class="com.csair.skypearl.actions.ConvenientVisaAction" method="crateMangerGraphicalData"> <result name="fail" type="freemarker"> /WEB-INF/pages/memberShop/visaIndex.ftl </result> <result name="success" type="jasper"> <param name="location">/jasreportTemplete/convenientVisa.jasper</param> <param name="format">${reportType}</param> <param name="dataSource">ffpTravelDetailList</param> <param name="documentName">${docName}</param> <param name="contentDisposition">attachment</param> <param name="reportParameters">reportParameter</param> </result> </action>
代码说明:
<param>用于为报表生成传递参数:
u location: 指定jasper文件的路径,且只能写一个路径;
u format: 指定生成的报表格式,有PDF、HTML、XML等;
u dataSource: 指定主报表中数据源的Collection集合,要求Action中必须包含getXXX方法,如public List<Person> getPersonList()方法,同时注意报表中的列字段名必须和Person类的属性名完全一致;
u reportParameters: 传递给报表本身的参数。这个参数名params必须为一个Map类型,并在Action中创建getParams()方法。它的键名应该与报表中$P{}中的名字完全一致,值类型也应该与$P{}的类型一致,这样能保证传递参数正确。由于是Map类型,所以可传递多个参数为报表中的参数赋值;
u contentDisposition: 报表生成方式,有inline和attachment两个值。inline表示使用浏览器在线预览,attachment表示弹出下载窗口提示下载。
u documentName: 如果是下载方式,则为默认下载的文件名,不用带.pdf后缀。
java代码只需要写数据(配置文件中需要的)的产生过程即可