struts2整合jasper模版生成PDF导出下载<三>

三,编写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代码只需要写数据(配置文件中需要的)的产生过程即可

猜你喜欢

转载自mywaylife.iteye.com/blog/1636588