JasperReports:如何在JSP页面中显示报表? [英] JasperReports: how to display report in JSP page?

查看:222
本文介绍了JasperReports:如何在JSP页面中显示报表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在JSP页面中显示jasper报告?我正在使用 iReport 1.3.3 工具来创建报告。

How to display jasper reports in JSP page? I am using iReport 1.3.3 tool to create reports.

我可以创建报告,但我正在努力在JSP页面中显示该报告。

I am able to create reports but I am struggling to display that report in JSP page.

注意:我需要以PDF格式和Excel格式显示报表。

Note: I need to display the report in PDF and Excel format.

推荐答案

也许我可以选择你的问题。我给你这个例子。

Maybe I can give an option to your question. I give you this example.

package reports;

/**
 *
 * @author felix
 */

@javax.servlet.annotation.WebServlet(name="Reports", urlPatterns={"/reports"})
public class HtmlReportServlet extends javax.servlet.http.HttpServlet {
    //public static final String REPORT_DIRECTORY = "/reports";

    @Override
    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
        //javax.servlet.ServletContext context = this.getServletConfig().getServletContext();
        java.io.InputStream reportSource = getClass().getResourceAsStream("/jrmain/test.jasper");
        java.util.Map<String, Object> params = new java.util.HashMap<String, Object>();

        org.apache.log4j.Logger logger = org.apache.log4j.Logger.getRootLogger();
        logger.setLevel((org.apache.log4j.Level)org.apache.log4j.Level.WARN);

        java.io.PrintWriter printWriter = response.getWriter();
        try {
            net.sf.jasperreports.engine.JasperPrint jasperPrint = net.sf.jasperreports.engine.JasperFillManager.fillReport(reportSource, params, new apps.dbase.DBaseLink().OpenLink());
            net.sf.jasperreports.engine.export.JRHtmlExporter htmlExporter = new net.sf.jasperreports.engine.export.JRHtmlExporter();
            response.setContentType("text/html");
            request.getSession().setAttribute(net.sf.jasperreports.j2ee.servlets.ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
            htmlExporter.setParameter(net.sf.jasperreports.engine.JRExporterParameter.JASPER_PRINT, jasperPrint);
            htmlExporter.setParameter(net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_WRITER, printWriter);
            htmlExporter.setParameter(net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI, "image?image=");
            htmlExporter.exportReport();
            printWriter.close();

        } catch (Exception e) {
            // display stack trace in the browser
            e.printStackTrace(printWriter);
        }
    }
}

这篇关于JasperReports:如何在JSP页面中显示报表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆