Bonjour,
Voici mon pb :
Je voudrais afficher une image g�n�r�e � partir d'un controlleur JAVA via AJAX dans une page HTML
L'image g�n�r�e est de type jpeg.
Je suis d�butant dans le domaine d'ajax, et evidement ce que je fais ne fonctionne pas
Voici le code de mon controleur qui g�n�re l'image et renvoie un flux:
Pour info ce controleur fonctionne tr�s bien puisque cela fonctionne tr�s bien en mode "non-AJAX".
Ce qui m'interresse c'est de savoir si la d�finition de "response" est bonne (setHeader) et si il ne manque pas kke chose pour un fonctionnement AJAX
voici maintenant ma page html avec l'appel � la servlet ("genererImage.html") qui execute le controleur (voir ci-dessus) :
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
22 public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws WebmapException, ServletException, IOException, ClassNotFoundException { if (log.isDebugEnabled()) { log.debug("**/ Affichage de la map /**"); } session = request.getSession(); map = (mapObj) session.getAttribute("Map"); if (log.isDebugEnabled()) { log.debug("Current Scale :\t " + Double.toString(map.getScaledenom())); } response.setHeader("Pragma","no-cache"); //response.setHeader("Content-Type", "application/x-www-form-urlencoded"); //response.setIntHeader("Expires",-1); response.setHeader("Content-Type", "image/jpeg"); response.getOutputStream().write(cartoService.renderMap(map).getBytes()); response.getOutputStream().flush(); response.flushBuffer(); return null; }
2) Est ce que la m�thode utilis�e pour affecter le contenu du flux � la source (src) de mon image est la bonne ?
3) Y a t il une m�thode sp�cifique pour r�cup�rer la "response" avec un autre format que text (responseText) ou XML (responseXML) ?
Est ce quelqu'un pourrait me dire � quelle endroit je fais une erreur, voire m�me me renvoyer le code source de la solution ?.
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 <%@ include file="/inc/admin_include.jsp"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script language="JavaScript"> function submitForm() { var req = null; document.ajax.dyn.value="Started..."; if(window.XMLHttpRequest) {// Firefox req = new XMLHttpRequest(); } else if(window.ActiveXObject) {// Internet Explorer req = new ActiveXObject("Microsoft.XMLHTTP"); } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest... Veuillez Utiliser Internet Explorer ou FireFox"); return; } req.onreadystatechange = function() { document.ajax.dyn.value="Wait server..."; if(req.readyState == 4) { if(req.status == 200) { document.ajax.dyn.value="Image Received"; var monImage = document.getElementById('image'); if (monImage) { monImage.src = req.responseXML; } } else { document.ajax.dyn.value="Error: returned status code " + req.status + " " + req.statusText; } } }; req.open("POST", "genererImage.html", true); req.send(null); } </script> </head> <body> <FORM name="ajax" method="POST" action=""> <p><INPUT type="BUTTON" value="Submit" ONCLICK="submitForm()"> </p> <p><input type="text" name="dyn" size="32" value=""></p> <img src="" id="image"> </FORM> </body> </html>
merci pour le coup de main !
Partager