jasperreort 结合struts2开发报表 可以完成动态信息显示。jasperreport 的报表显示的数据是通过struts2的上下文信息获取的。实现的基本步骤为:
1。使用ireport 可视化编写报表格式和内容;后缀为jrxml,当点击preview时会生成jasper文件。
2。在Action中新建一个Action方法。
public String reportHTML() throws Exception { try { order = orderDao.findByOrderId(order.getOrderId()); //order = orderDao.findByCustomer(); String reportSource; reportSource = ServletActionContext.getServletContext() .getRealPath("/jasper/report1.jrxml"); File parent = new File(reportSource).getParentFile(); //将.jrxml模板文件编译成为.jasper文件,当然,其文件名可以指定,如果没指定,则与.jrxml文件名一样.只是后缀不同而已 JasperCompileManager.compileReportToFile(reportSource, new File(parent, "report1.jasper").getAbsolutePath()); } catch (Exception e) { e.printStackTrace(); return ERROR; } return SUCCESS; }
3。在struts2配置文件中配置该action方法,这里package的extends一定要继承jasperreports-default,result的type必须 是jasper类型的。format可以是HTML,XML,PDF,CSV,XLS格式
<package name="default" namespace="/report" extends="shop.front,jasperreports-default"> <action name="order_*" class="orderAction" method="{1}"> <result name="success" type="jasper"> <param name="location"> /jasper/report1.jasper </param> <param name="dataSource">order</param> <param name="format">HTML</param> </result> <interceptor-ref name="customerDefaultStack"/> </action> </package>