<%@page import="javax.servlet.ServletOutputStream"%> <%@page import="javax.servlet.http.HttpServletResponse"%> <%@page import="java.io.ByteArrayOutputStream"%> <%@page import="java.util.*"%> <%@page import="net.sf.jasperreports.engine.data.*"%> <%@page import="net.sf.jasperreports.engine.export.*"%> <%@page import="net.sf.jasperreports.engine.design.*"%> <%@page import="net.sf.jasperreports.engine.*"%> <%@page import="net.sf.jasperreports.view.*"%> <%@page import="java.io.*"%> <% response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); response.setDateHeader ("Expires", 0); BeanArray[] ReportResult = (BeanArray[])objDispatcher.getContextValueObj("REPORT"); // or which ever way we can get the bean array JasperPrint jp=null; JasperReport jr = null; File reportFile = new File(application.getRealPath("0/htm/BeanTest.jasper")); String spath = reportFile.getAbsolutePath(); InputStream inputstream = new FileInputStream(spath); JRDataSource jrdatasource = new JRBeanArrayDataSource(ReportResult); Map parameters = new HashMap(); jp = JasperFillManager.fillReport(inputstream, parameters,jrdatasource); response.reset(); response.setHeader("Expires", "0"); response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); JRExporter exporter = null; ServletOutputStream servletoutstr = response.getOutputStream(); exporter = new JRHtmlExporter(); response.setContentType("text/html"); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jp); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, servletoutstr); Map imagesMap = new HashMap(); request.getSession().setAttribute("IMAGES_MAP", imagesMap); exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap); exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?image="); try { exporter.exportReport(); } catch (JRException e) { } finally { if (servletoutstr != null) { try { servletoutstr.flush(); servletoutstr.close(); } catch (IOException ex) { } } } %> >