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 de transmision d'attribut de session


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Par défaut probleme de transmision d'attribut de session
    Bonjour,
    Je voudrais garder un objet en tant qu'attribut de session.
    Dans une servlet (
    MaServlet) je donne une valeur a un attribut de session:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    	MonObjet o = new MonObjet();
            request.getSession().setAttribute("MonObjet",o);
    	RequestDispatcher disp=getServletContext().getRequestDispatcher("/mapage.jsp");
    	disp.forward(request,response);
    puis dans la jsp, je recupère la valeur de l'attribut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
      MonObjet o = (MonObjet)session.getAttribute("MonObjet");
      ...
    dans la meme page, j'ai un select, quand je choisis un autre item de la liste, je la relance la jsp mapage avec un submit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    <form name="formSelect" action="">
        <select name="site" size="1" onchange="document.formSelect.submit();">
    	<option value="A" >A</option>
            <option value="B" >B</option>
    	<option value="C" >C</option>
        </select>
    </form>
    Quand j'obtient ma page via le servlet, je recupère bien l'objet MonObjet, mais quand je choisis dans la liste un item, l'objet renvoyé est null!!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    C'est assez bizarre, en effet...
    Tu repasses par ta servlet quand tu recharges ta page ? (logiquement, oui)
    Dans ce cas, qu'est-ce que te donne un debug du code ? Ton attribut est-il vide dès le début du process, lors du réaffichage ? l'est-il à la fin ? Es-tu sûr que tu ne supprimes pas l'attribut quelque part dans ta servlet ?

    Bref, beaucoup de questions, pas beaucoup de réponses ... .

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mixouille
    Tu repasses par ta servlet quand tu recharges ta page ? (logiquement, oui)
    Ben non, si tu regardes l'attribut "action" de <form>, il n'y a pas de référence...

    Par contre, si l'objet est en session, ça ne devrait pas poser problème, le seul cas, ce serait par un appel direct à la jsp sans avoir initialiser l'objet en session (donc sans être, au préalable, passé par la servlet)

    Par contre, j'ai dû rater un épisode , je ne vois pas le lien entre MonObjet et ta liste dans la jsp...
    Que veux-tu dire au juste ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    C'est juste que sa liste fait un submit() sur le onchange().
    Et après test, je confirme qu'un form sans action recharge la page au submit.

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Pour exécuter la servlet après avoir sélectionné un élément dans la liste, il faut modifier l'attribut action de la balise form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="formSelect" action="<%=request.getContextPath()+"/UneServlet"%>">

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Par défaut
    Citation Envoyé par c_nvy
    Pour exécuter la servlet après avoir sélectionné un élément dans la liste, il faut modifier l'attribut action de la balise form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="formSelect" action="<%=request.getContextPath()+"/UneServlet"%>">
    salut n_cvy,
    encore une fois t'as vu juste, MIRCII

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

Discussions similaires

  1. probleme de gestion des attributs en session
    Par riadhhwajdii dans le forum JSF
    Réponses: 0
    Dernier message: 21/08/2009, 12h54
  2. probleme lors de recuperation d'un attribut en session
    Par riadhhwajdii dans le forum JSF
    Réponses: 0
    Dernier message: 02/08/2009, 15h06
  3. Réponses: 16
    Dernier message: 02/12/2005, 10h39
  4. Probleme de gestion d'attributs et de tables
    Par Mut dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 30/05/2005, 19h05
  5. Probleme de redirection apres fermeture de session
    Par soufienne dans le forum ASP
    Réponses: 3
    Dernier message: 08/04/2004, 10h52

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