IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Probleme envoi tags XML multiples à un JavaScript depuis une Servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 139
    Par défaut Probleme envoi tags XML multiples à un JavaScript depuis une Servlet
    Bonjour à tous,

    je vous expose mon problème:

    j'ai une page JSP qui appelle une méthode Javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        	<div id="messages">
    	<a href="javascript:checkForMessage()">Go</a>
        	</div>
    La fonction javascript associée:

    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);
     
        }
    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
     
    		response.setContentType("text/xml");
    		response.setHeader("Cache-Control", "no-cache");
    		PrintWriter pw = response.getWriter();
                    pw.write("<message>Msg1</message>");
    Jusque là, tout marche bien, j'affiche bien Msg1 sur ma page
    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pw.write("<message>TOTO</message><message>TITI</message>");
    et dans ma fonction javascript:
    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 />";
    là je n'ai plus rien, même pas le premier tag message.
    Quelqu'un pourrait m'éclairer ?

    Merci de votre aide.
    Tiamat.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    ce que tu envoies :
    Citation Envoyé par tiamat Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pw.write("<message>TOTO</message><message>TITI</message>");
    n'est pas du XML bien formé
    En effet, un xml bien formé (http://www.w3.org/TR/REC-xml/#sec-well-formed) doit avoir une et une seule balise root... or, tu en as défini 2.
    tu dois écrire plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pw.write("<messages><message>TOTO</message><message>TITI</message></messages>");

Discussions similaires

  1. Affichage de XML grâce à du javascript dans une page HTML
    Par broise dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 30/07/2008, 10h41
  2. Envoi de fichier au client depuis une servlet
    Par vedrfolnir dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 04/07/2006, 14h57
  3. Declenchement d'un javascript depuis une autre page
    Par mcrbe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/03/2006, 11h30
  4. [SERVLET]envoi multiple d'img d'une servlet vers une JApplet
    Par reno.rkcrew dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 17/09/2005, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo