2010-08-04 3 views
0

Как отображать отчеты о яшме на странице JSP? Я использую инструмент iReport 1.3.3 для создания отчетов.JasperReports: как отобразить отчет на странице JSP?

Я могу создавать отчеты, но я изо всех сил пытаюсь отобразить этот отчет на странице JSP.

Примечание: Мне нужно отобразить отчет в формате PDF и Excel.

ответ

2

Может быть, я могу дать вариант на ваш вопрос. Я приведу вам этот пример.

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); 
     } 
    } 
} 
Смежные вопросы