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

jQuery Discussion :

jQuery et Servlets/jsp (j2ee)


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut jQuery et Servlets/jsp (j2ee)
    Bonjour,

    Je suis en train de développer une application web avec J2EE, et j'utilise également du JQuery pour une partie de l'application qui nécessite AJAX.

    En fait, j'ai une page index.jsp qui contient un menu à gauche (le menu est constitué de plusieurs liens) et un cadre à droite.
    Le contenu du cadre à droite change lorsque l'utilisateur clique sur un lien du menu (sans recharger toute la page). Pour cela, j'utilise jquery, en disant que pour chaque clic sur un lien du menu, on fait un 'loadpage' suivi d'un 'return false;'.

    Ce que je voudrais faire c'est :
    1/ l'utilisateur clique sur un lien du menu de gauche dans le but d'afficher lien1.jsp dans le cadre de droite
    2/ le programme passe par le doGet de la servlet associée à lien1.jsp pour effectuer des requêtes nécessaires à l'affichage de lien1.jsp
    3/ le programme affiche lien1.jsp dans le cadre de droite (sans avoir rechargé toute la page) et en ayant connaissance des résultats des requêtes faites dans le doGet de la servlet.

    Pour ce faire, je mets dans les attributs href de mes liens un chemin vers ma servlet.
    Cependant, mon problème est le suivant :
    ==> Comment lier la servlet et le jquery pour que le RequestDispatcher("lien1.jsp).forward de ma servlet ne recharge pas toute la page ?

    Merci d'avance pour votre aide !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Citation Envoyé par JohnSheppard Voir le message
    Comment lier la servlet et le jquery pour que le RequestDispatcher("lien1.jsp).forward de ma servlet ne recharge pas toute la page ?
    Du coté servlet, tu faits seulement de sorte qu'il ne retourne les bouts de code html à mettre dans le div à rafraîchir.
    Coté jQuery, regarde le document:
    http://api.jquery.com/category/ajax/

    A+.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Bonjour et merci pour cette réponse !

    Je suis d'accord je comprends le fonctionnement: il faut que mon lien envoie vers ma servlet puis que ma servlet retourne seulement le code du cadre de droite. Tout ceci avec une bidouille jquery empêchant le rechargement de la page.
    Cela dit je ne comprends pas du tout comment faire tout ça !

    Pour l'instant, le href de mon lien (ce lien se trouve dans index.jsp) renvoie bien vers ma servlet. Et ma servlet renvoie bien uniquement le code du cadre de droite puisqu'elle forward vers lien1.jsp !
    Pouvez-vous me donner davantage d'indications sur la marche à suivre ?
    * dans le jquery, comment écrire ma fonction qui est exécutée au moment du clic sur mon lien ? le 'load_page' suivi de 'return false' est incorrect dans mon cas non ?
    * dans la servlet, sachant que mon forward vers lien1.jsp ne semble pas fonctionner, comment ne renvoyer que ce qui m'intéresse ?

    PS: je précise que dans index.jsp, il y a 2 div. Celui de gauche contenant mon lien, et celui de droite contenant le cadre à rafraichir
    Et dans lien1.jsp, il n'y a QUE le contenu du cadre de droite

    Merci d'avance pour votre aide !

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 328
    Par défaut
    Le secret pour faire de l'ajax en jquery, c'est d'utiliser la fonction... ajax !

    Exemple si ton lien comporte l'url cible dans l'attribut href et que tu as une div cible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <a href="cible.jsp" class='ajax'>Texte</a>
     
    ...
     
    <div id="cible"></div>
    Tu peux faire un script du genre

    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
     
    /* définition d'une fonction qui sera exécutée pour tout click sur un lien de classe ajax */
    $('a.ajax').click(function(ev){
        ev.preventDefault() ; // on annule le comportement de base du click sur le lien
        var urlCible = a.attr('href') ; //récupération de l'url
        /*
        Utilisation de la fonction Ajax
        avec une méthode qui s'exécute en cas de réussite (code 200)
        et une qui s'exécute en cas d'erreur 
        */
        $.ajax({
    	'url':urlCible,
    	'success':function(data){
                $("#cible").html(data) ;
            },
            'error':function(xhr){
    	    alert('erreur') ;
            }
        });
    });
    A adapter au contexte bien entendu, tu n'est pas du tout obligé d'avoir une seule cible ou l'url dans le href...
    La doc dans le second message

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Merci pour vos réponses mais j'ai finalement décidé de me passer d'ajax/javascript/jquery !
    Sans rentrer dans un débat, je trouvais que cela impliquait beaucoup trop de problèmes de sécurité et/ou compatibilité !

    En attendant de trouver une meilleur solution, pour l'instant tous mes liens (que ce soit dans le menu de gauche ou bien dans la barre d'onglets) rechargent entièrement la page.

    Je ne sais pas si c'est possible mais j'aimerais arriver à ne rafraichir mon div central sans recharger la page uniquement avec java (donc les servlets j'imagine). Si vous avez des idées sur la question n'hésitez pas

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. Réponses: 2
    Dernier message: 07/08/2011, 22h03
  3. Réponses: 0
    Dernier message: 09/10/2007, 03h10
  4. [servlet][jsp] Creer une page de login
    Par Beuj dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/03/2004, 17h55
  5. [Servlet][JSP] valeur ajoutée
    Par yolepro dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/03/2004, 17h30

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