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

JavaScript Discussion :

[AJAX] Ajax et JSP, avec page web divisé en zones


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut [AJAX] Ajax et JSP, avec page web divisé en zones
    Bonjour,

    J'explique brièvement mon problème :
    J'ai la vue d'un site séparé entre différentes zones (Bandeau,menu, contenu...)

    Le bandeau devant rester statique, le menu étant statique la plupart du temps, seul la zone "Contenu" doit être dynamique ...

    Donc pour mes zones, j'utilise simplement css et <div>...
    Alors que j'ai vu que struts permettait aussi via la balise "tiles" de définir des zones ...

    1er Point : Déja à ce niveau là, je ne sais pas quel est l'interet d'utiliser l'un ou l'autre, alors si quelqu'un à des connaissances là dessus, elles seront les bienvenues !


    2ème point : je veux que lorsque je clique sur un lien dans le bandeau celui ci m'affiche les informations correspondantes dans la zone "contenu" sans toucher aux autres zones qui sont statiques...

    Pour n'avoir qu'à rafraichir la partie de ma page correspondantes j'utilise AJAX, donc là ca marche bien :

    sur le lien j'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:testAjax()">Account Managing</a>
    ma fonction testAjax() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("contenu").innerHTML = "OK ca marche...."
    Seulement je voudrais faire ici appel à une jsp qui s'afficherait dans la zone "contenu", un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("contenu").innerHTML = Contenu.jsp
    D'une je ne sais pas si cela est possible et deux si oui je ne connais ni ne trouve la syntaxe.

    Merci pour vos idées,
    Cordialement !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il faut tout d'abord apprendre à utiliser Ajax.

  3. #3
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    C'est quoi l'intéret d'utiliser Ajax dans ton cas?

    Parce ce que tu décris ici, c'est le principe sur lequel tous les sites web sont articulés, c'est à dire une partie statique et une partie dynamique. Pour autant, en général, on charge d'un coup toute les parties, qu'elles soient statiques ou dynamiques.

    Ajax est seulement utilisé ponctuellement pour charger une partie de la page, pas la page complete.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut
    Bovino :

    Euh ok ... bon je sais un peu programmer en ajax, du moins en théorie, il est vrai qu'en pratique je débute plutôt ...

    Mais bon ce que je voulais savoir c'est si on peut "balancer" une jsp entière dans un innerHTML(), c simple comme question, c oui ou c non quoi ...


    DoubleU :

    C'est quoi l'intéret d'utiliser Ajax dans ton cas?

    Parce ce que tu décris ici, c'est le principe sur lequel tous les sites web sont articulés, c'est à dire une partie statique et une partie dynamique.
    Ben en fait l'interêt d'ajax est d'avoir une partie statique et une partie dynamique... Je dis pas qu'il n'y a pas d'autres moyens de le faire, j'en cherche des moyens justement avec "struts" et "tiles" peut etre ? mais je connais pas bien, j'ai besoin d'être orienté !

    Il est vrai que c'est un truc "classique" quand on l'a fait une fois c'est bon, mais je ne l'ai pas fait une fois encore ...donc bon ...

    Pour autant, en général, on charge d'un coup toute les parties, qu'elles soient statiques ou dynamiques.
    Je rentre dans mon site, j'ai une partie "bandeau" statique bandeau.jsp
    J'ai une partie "Menu à gauche" Menu.jsp dynamique, varie que très rarement ...

    Et j'ai mon "contenu" contenu.jsp ... qui est dynamique et varie à chaque clique sur des liens, par exemple "manage account", j'ai un formulaire pour créer un account qui s'affiche dynamiquement dans ma zone "contenu" sans toucher au reste, puisque je ne vais pas tout rafraichir si ya ke cette partie qui change si ?

    On charge tout d'un coup ? avec des champs hidden ? Jcomprends pas bien ce que tu veux dire ! c'est ce que je fais actuellemnt non ? je charge tout au debut et apres en fonction des actions utilisateurs j'affiche dans la zone "contenu" la page, la jsp ou la zone correspondante non ?

    Ajax est seulement utilisé ponctuellement pour charger une partie de la page, pas la page complete.
    Oui, je ne cherche pas a recharger la page complete, c pour cela que j'utilise de l'ajax, je cherche juste a recharger la partie de la page appellé "contenu"...

    J'espere que quelqu'un comprends mon probleme et peut m'aider svp !

    Merci

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    bon je sais un peu programmer en ajax
    Désolé, le morceau de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("contenu").innerHTML = Contenu.jsp
    Me faisait penser que non...
    Ensuite, puisque tu ne veux qu'un oui ou un non, alors oui, tu peux 'balancer' une jsp entière. Reste que le résultat risque fortement de dépendre du contenu de ce qui est renvoyé.

  6. #6
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Et j'ai mon "contenu" contenu.jsp ... qui est dynamique et varie à chaque clique sur des liens, par exemple "manage account", j'ai un formulaire pour créer un account qui s'affiche dynamiquement dans ma zone "contenu" sans toucher au reste, puisque je ne vais pas tout rafraichir si ya ke cette partie qui change si ?
    Si. C'est le concept généralement utilisé sur internet puisque sur tous les sites, tu as un bandeau et un menu qui sont statiques, et un contenu qui change en fonction des clics sur les liens de tes menus. Peu importe ce qui change quand tu cliques sur un lien du menu, qu'il y ait beaucoup de modifications ou non, tu recharges toute ta page pour avoir le nouveau contenu.

    Ajax va intervenir généralement dans des formulaires, pour charger certaines parties liées aux réponses de l'utilisateur, pour cette fois éviter de recharger toute la page et réafficher les données qu'il a déja entrées, plus celles liées.

    L'exemple typique est la liste déroulante liée. Tu as 2 selects, un qui contient des catégories (pré-rempli) et un select qui contient les produits correspondant à la catégorie sélectionnée (vide à l'initialisation). Lorsque l'utilisateur choisit une catégorie, tu fais un appel ajax pour charger les produits correspondant à la catégorie et tu les mets dans le select, comme ca tu évites de recharger toute la page pour rajouter ces catégories dans la 2e liste.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut
    Bovino :

    Je crois avoir préciser au dessus de ce bout de code ca :
    Seulement je voudrais faire ici appel à une jsp qui s'afficherait dans la zone "contenu", un truc du genre :
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("contenu").innerHTML = Contenu.jsp
    Quant à ca :
    Ensuite, puisque tu ne veux qu'un oui ou un non, alors oui, tu peux 'balancer' une jsp entière. Reste que le résultat risque fortement de dépendre du contenu de ce qui est renvoyé.
    Ouais ce que j'aimerais mettre en place c un bon mvc donc evidemment le resultat de ma vue "jsp" corresspondra a ce ki est envoyé par ma servlet ...

    je sais pas mais jarrive pas avec les syntaxe que jai vue pour balancer une jsp dans ma "div" "css" en ajax ...

    Jai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    innerHTML(<jsp:include .....)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ineerHTML (<@% include ...)
    aucun des deux na marché ... aprés jai pter une erreure autre part ....



    Doubleu : ok merci de ta reponse, je connaissais l'exemple du double menu ainsi que celui de lauto completion qui sont les exemples typique d'ajax ...

    Donc en fait je dois rafraichir ma page a chak action ke les parties soit statique ou non ?

    Je trouve ca bizarre... quelquechose doptimiser ne rafraichirai ke ce ki a changé ... non ?

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut
    Salut, ben en fait j'y suis arrivé ...

    J'ai enfin une architecture de site qui commence à aller bien !

    Pour Expliquer, j'ai donc mon site, 6 zones :
    - Logo, Bandeau, Login
    - Menu, Contenu,
    - Pied de page.
    ------------------------
    | Logo| Bandeau |Login |
    |-----------------------
    |Menu| Contenu |
    | |-----------------
    | | Pied de page |
    --------------------------
    Donc dans ma zone "Login" où j'utilise de l'Ajax pour ne rafraichir que cette partie là !
    J'ai trois vue possible :
    1 : Veuillez vous logguez, login: "textfiel", password : "textfield", Se connecter "submit button" ...
    J'appelle cette vue Login.jsp

    2 : Bienvenue "<%= login %> ! , Se déconnecter "submit button"
    J'appelle cette vue Logged.jsp

    3 : Error, vous avez rentrez un mauvais identifiant et/ou un mauvais mot de passe, "Ressayez" "forward button" to Login.jsp
    J'apelle cette vue LogError.jsp

    Au submit de l'action 1 (Se connecter), je fais appel à une fonction javascript, qui fait appel à une servlet, et dans la servlet je dispatch la bonne jsp (dispatcher) et je recupere la reponse : dans l'ajax et je l'ecris dans un innerHTML ...

    Maintenant il ne manqe plus que la gestion de session,
    je ne sais pas trop comment m'y prendre, faire une gestion personnelle, utiliser la gestion du realm ? (je suis sous jboss 5) ou les facade sessions EJB 3.0 ? je sias pas trop ou un module existant de login sous jboss genre JBPm ... ou un truc comme ca !

    Merci a vous, pour m'avoir orienter ...

    Je collerais peut etre du code , pour que ce soit plus clair ! Salut !

  9. #9
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    La ce ne dépend plus d'ajax, tu ferais mieux de faire un post dans la section j2ee ou tu auras probablement plus de réponses ^^

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut
    ok merci DoubleU !

    au fait c'est pas toi Ariel ? avec le georges bush et le singe bizarre ca lol !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interagir avec page web
    Par martin01.brandon dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 02/11/2017, 15h49
  2. Autorun avec page web
    Par wwilly17 dans le forum Windows
    Réponses: 2
    Dernier message: 03/06/2016, 09h17
  3. Utiliser fonction cURL avec page web enregistrée
    Par Flowcon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 30/04/2016, 23h00
  4. Découper une page web en 3 zones
    Par caro_caro dans le forum Wicket
    Réponses: 4
    Dernier message: 19/05/2009, 13h30
  5. Connexion sécurisée avec page web
    Par MatthieuL dans le forum C#
    Réponses: 0
    Dernier message: 15/12/2008, 13h19

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