Bonjour à tous,
je vous expose mon problème:
j'ai une page JSP qui appelle une méthode Javascript:
La fonction javascript associée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div id="messages"> <a href="javascript:checkForMessage()">Go</a> </div>
Ma fonction Javascript envoit une demande de refresh à une Servlet:
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 var req; function initRequest(url) { if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } } function checkForMessage() { var url = "http://localhost/EMI/RefreshAdminServlet?module=toto"; initRequest(url); req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(null); } // callback function processReqChange() { var select = window.document.getElementById("messages"); if (req.readyState == 4) { if (req.status == 200) { select.innerHTML = ""; select.innerHTML +="Données recues de la servlet <br />"; var item = req.responseXML.getElementsByTagName("message"); var message = item[0].childNodes[0].nodeValue +"<br />"; select.innerHTML += message + "<br />"; } // sleep de 5s et on repart setTimeout("checkForMessage()", 5000); }
Jusque là, tout marche bien, j'affiche bien Msg1 sur ma page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 response.setContentType("text/xml"); response.setHeader("Cache-Control", "no-cache"); PrintWriter pw = response.getWriter(); pw.write("<message>Msg1</message>");
Par contre si dans ma servlet je veux envoyer plusieurs tags <message>
plus rien à faire...ma fonction javascript ne reçoit plus rien...
dans ma servlet je fais:
et dans ma fonction javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 pw.write("<message>TOTO</message><message>TITI</message>");
là je n'ai plus rien, même pas le premier tag message.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var item = req.responseXML.getElementsByTagName("message"); var message = item[0].childNodes[0].nodeValue +"<br />"; message += item[1].childNodes[0].nodeValue +"<br />"; select.innerHTML += message + "<br />";
Quelqu'un pourrait m'éclairer ?
Merci de votre aide.
Tiamat.
Partager