日期:2014-05-17  浏览次数:21486 次

jasperreport 结合struts2开发报表
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>