foravneet Posted June 12, 2007 Share Posted June 12, 2007 I have two different reports containing just a chart each. I need to show them one after the other in a single jsp page ( preferably using ImageServlet).. Code:String[] allReports = {"jasper/viewedpages_top.jasper","jasper/editedpages_top.jasper"};for(int i = 0; i< allReports.length; i++){ java.io.InputStream is1 = getClassLoader().getResourceAsStream(allReports(i)); //Loading my jasper file jasperReport1 = (JasperReport) net.sf.jasperreports.engine.util.JRLoader.loadObject(is1); //Filling the report with data from the database based on the parameters passed. myJPrint1 = JasperFillManager.fillReport(jasperReport1, parameters, conn1.getConnection()); JRHtmlExporter exporter1 = new JRHtmlExporter(); request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,myJPrint1); exporter1.setParameter(JRExporterParameter.JASPER_PRINT, myJPrint1); exporter1.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER,buff1); exporter1.setParameter(JRHtmlExporterParameter.IMAGES_URI,"/jasperimage?" + "i=" + i + "&image="); exporter1.exportReport();} when i try it the way in the code above .. the chart image in the first report is getting overwritten by the chart image in the second report..I get the first report text properly..then the chart for the second report(instead of the one for the first report).Below this the second report comes fine with its own chart image. On seeing the html source I noticed that the image name for the chart is the same in the first report as well as the second report.. i guess that might be causing the ImageServlet to behave this way. Also note that to make sure that its not a browser caching issue, I have made the two chart image URLs distinct in IMAGES_URI value. Stuck on this ..Any ideas ??Post edited by: foravneet, at: 2007/06/12 02:39 Link to comment Share on other sites More sharing options...
lucianc Posted June 12, 2007 Share Posted June 12, 2007 If you put both print objects on the session under the same name (ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE), the second object will overwrite the first one so when the first image will be requested, the servlet will actually extract it from the second report. So you need to use distinct names for the two print objects on the session:Code:String printSessionName = ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE + i;request.getSession().setAttribute(printSessionName, myJPrint1);exporter1.setParameter(JRHtmlExporterParameter.IMAGES_URI,"/jasperimage?" + "jrprint=" + printSessionName + "&image="«»); HTH,Lucian Link to comment Share on other sites More sharing options...
foravneet Posted June 13, 2007 Author Share Posted June 13, 2007 thanks lucianc.. that was very helpful Link to comment Share on other sites More sharing options...
dear_sunny Posted May 27, 2008 Share Posted May 27, 2008 Hi lucianc, My problem is exactly the same.But i am defining my exportparameters in XML file using XMLViewResolver.So how can i set my IMAGES_URI for this case.here is part of my code.<property name="exporterParameters"> <map> <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI"> <value/reports/image?image=</value> </entry> <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN"> <value type="boolean">FALSE</value> </entry> </map> </property> and i am setting the ImageServlet.DEFAULT_JASPER_PRINT_LIST_SESSION_ATTRIBUTE in another java file which extends JasperReportsHtmlView.I tried to set export parameters in this class even,but it's not accepting the values here.here is my code Map map=new HashMap();map.put(net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI, /reports/image?" + "jrprint=" + tempSession+ "&image=");map.put(net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,false);this.setExporterParameters(map); session.setAttribute(ImageServlet.JASPER_PRINT_REQUEST_PARAMETER,populatedReport); Please help to resolve. Link to comment Share on other sites More sharing options...
dear_sunny Posted May 27, 2008 Share Posted May 27, 2008 Hi lucianc, Sorry here is updated ,I found typo mistakes in the above message. My problem is exactly the same.But i am defining my exportparameters in XML file using XMLViewResolver.So how can i set my IMAGES_URI for this case.here is part of my code. <property name="exporterParameters"> <map> <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI"> <value/reports/image?image=</value> </entry> <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN"> <value type="boolean">FALSE</value> </entry> </map> </property> and i am setting the ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE in another java file which extends JasperReportsHtmlView.I tried to set export parameters in this class even,but it's not accepting the values here.here is my code Map map=new HashMap(); map.put(net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI, /reports/image?" + "jrprint=" + tempSession+ "&image="); map.put(net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,false); this.setExporterParameters(map); Please help to resolve. Link to comment Share on other sites More sharing options...
lucianc Posted May 27, 2008 Share Posted May 27, 2008 dear_sunny wrote:and i am setting the ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE in another java file which extends JasperReportsHtmlView.I tried to set export parameters in this class even,but it's not accepting the values here. Looking at Spring's JasperReportsHtmlView, it seems to take export parameters from the model map. Try to set the export parameter in the model map:Code:model.put(JRHtmlExporterParameter.IMAGES_URI, "/reports/image?jrprint=" + tempSession + "&image="«»); Note the "jrprint" parameter value must match the name of the JasperPrint object on the session. Regards,Lucian Link to comment Share on other sites More sharing options...
dear_sunny Posted May 28, 2008 Share Posted May 28, 2008 Woooow that's really helpful for me....:) ...Many Many Thanks Lucianc. Link to comment Share on other sites More sharing options...
anjik Posted June 11, 2009 Share Posted June 11, 2009 Very thanks Lucian, this post very help for me Link to comment Share on other sites More sharing options...
me_amitjain Posted March 8, 2010 Share Posted March 8, 2010 Hi Luckian, I am facing exactly the same problem and your answer looks compelling to me. But when I am doing the same as you suggested I am getting no images. I get "No JasperPrint documents found on the HTTP session." Everything looks fine to me but my images get overwritten as they are in the same session(may be). I would appreciate if you can throw more details on your solution. ThanksAmit Link to comment Share on other sites More sharing options...
jeshurun Posted November 18, 2010 Share Posted November 18, 2010 luciancWrote: If you put both print objects on the session under the same name (ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE), the second object will overwrite the first one so when the first image will be requested, the servlet will actually extract it from the second report. So you need to use distinct names for the two print objects on the session: Code: HTH, Lucian Thanks Lucian, that was very helpful. Link to comment Share on other sites More sharing options...
_mol_ Posted January 31, 2014 Share Posted January 31, 2014 Hi, I have the same problem and I am trying to use this code, but it doesn't work for me. The problem is that browser doesn't find the url of images.String printSessionName = ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE + i;request.getSession().setAttribute(printSessionName, myJPrint1);exporter1.setParameter(JRHtmlExporterParameter.IMAGES_URI,"/jasperimage?" + "jrprint=" + printSessionName + "&image="); [/code] I'm wondering if it's necessary to change other part of the code so that "jrprint" attribute of the url can be recognized.Any helps would be appreciated! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now