Bonjour,
J'ai suivi les conseils de c_nvy (que je ne remercierai jamais assez pour tous les posts précieux qu'elle envoie ) et pourtant je n'arrive pas a afficher un graphe généré avec JFreeChart dans une page jsp. La place où devrait s'afficher l'image reste désespérément blanche ....
J'ai bien fait évoluer le web.xml :
Voici mon Action struts (il s'agit pour le moment d'un essai avec des valeurs en dur) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <servlet-mapping> <servlet-name>DisplayChart</servlet-name> <url-pattern>/servlet/DisplayChart</url-pattern> </servlet-mapping>
et ma jsp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 DefaultPieDataset pieDS = new DefaultPieDataset(); pieDS.setValue("Chirurgie", 30); pieDS.setValue("Obstétrique", 20); pieDS.setValue("Médecine", 50); pieDS.setValue("Non attribué", 0); JFreeChart pie = ChartFactory.createPieChart("Répartition MCO", pieDS, true, true, true); ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); String filename = ServletUtilities.saveChartAsJPEG(pie, 200, 180, info, request.getSession()); Graphe graphe = new Graphe(); String map = ChartUtilities.getImageMap(filename,info); String src = request.getContextPath()+"/servlet/DisplayChart?filename=" + filename ; String useMap = "#" + filename ; graphe.setMap(map); graphe.setUseMap(useMap); graphe.setSrc(src); request.setAttribute("graphe", graphe); suite = mapping.findForward("resultat_DPA_TDP");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %> <html> <head> <script type="text/javascript" src="${pageContext.request.contextPath}/js/ipaqh.js"></script> <title>Résultats</title> </head> <body> Activité de soins MCO <br> ${graphe.map} <br> <html:img src="${graphe.src}" border="1"/> <br> </body> </html>
Le graphe est pourtant bien créé et stocké dans le répertorie temporaire, je l'ai vérifié, je parviens même à afficher l'image avec un visionneur d'images. Le problème semble donc être la restitution à la page JSP.
La servlet DisplayChart semble être correctement activée par la balise img un point d'arret à l'intérieur de la méthode service de cette servlet me l'a montré.
Quelqu'un voit il où est le problème ?
Merci d'avance !
Partager