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 :

Recuperer une liste en session


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut Recuperer une liste en session
    Bonjour, voilà, je crée une liste dans une jsp, ensuite j'enregistre cette liste en session comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List<Character> lettres = new ArrayList<Character>();	
    session.setAttribute("listeLettre", lettres);
    Ensuite je veux recuperer cette liste dans une autre page comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Character> mesLettres = (List) session.getAttribute("listeLettre");
    Et ça ne marche pas!!!
    je vois pas où est mon erreur!
    Après la difficulté, la facilité...

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    1) définir "ça ne marche pas".
    2) es-tu sur de bien être dans la même session (le jsessionid dans les cookies / l'url est bien le même)?
    3) est-ce que tu génère bien tes urls avec c:url dans ton jsp? Sinon le token de session n'est pas inséré et perte de session entre les pages.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    Ca ne marche pas dans le sens où je cherche dans ma deuxieme page à faire une boucle for (int i = 0; i< mesLettres.size(); i++)....
    et que j'ai une erreur du type : nullpointer exception.

    De plus lorsque dans ma premiere page je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String motChoisi = motsRecherches.get(n);
    session.setAttribute("mot", motChoisi);
    Là ça fonctionne tres bien et je peux recuperer mon attribut de session dans la deuxieme page
    de cette maniere :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String mot1 = (String) session.getAttribute("mot");
    j'en deduis que je suis bien dans la meme session.
    Après la difficulté, la facilité...

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    montre du code un peu plus complet qu'on voie où est le problème. Tu l'utilise ce mot1? Parce qu'avec le code fournis, il pourrait être null que le résultat serait le même.

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    Très bien voilà le contenu de ma première JSP ou j’essaie de mettre en session un mot, et une liste :

    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
    <% 
            
            if(session.getAttribute("mot") == null)
                    {
            List <String> motsRecherches = new ArrayList<String>();          
            motsRecherches.add("language");
            motsRecherches.add("computer");
            motsRecherches.add("framework");
            motsRecherches.add("mouse");
            motsRecherches.add("plugin");
            motsRecherches.add("binary");
            motsRecherches.add("algorithm");
            
            int n =(int) ( Math.random()*(motsRecherches.size()));
            String motChoisi = motsRecherches.get(n);
            session.setAttribute("mot", motChoisi);
            session.setAttribute("liste", motsRecherches);
                    }
     
     
    for(int j=0; j<((String) session.getAttribute("mot")).length(); j++)
    {
            out.println("_ ");
    }
     
     
    %>
    et voici ma deuxième page ou j'essaie de récupérer ce mot et cette liste, le mot, est récupérer par contre la liste, non
    ( mot s'affiche bien sur la page du navigateur, mais j'obtiens : null pour la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <%  String motATrouver= (String) session.getAttribute("mot");
                    List<String> listeLettres = (List) session.getAttribute("liste");
                    String lettreChoisie=request.getParameter("lettre");
                    out.println(motATrouver);
                    out.println(listeLettres);
    %>
    Après la difficulté, la facilité...

  6. #6
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Il n'y a pas un truc avec cette clause là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(session.getAttribute("mot") == null)
    {
     //....
     session.setAttribute("mot", motChoisi);
     session.setAttribute("liste", motsRecherches);
    }
    Je pense à la session qui est la même depuis le début avec l'attribut "mot" est défini ailleurs avant cette clause,... ou la session n'est pas nouvelle. Bref, un petit effet pervers des sessions.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu ne rajoute la liste que si mot est null. Mais pour ce qu'on en sait, mot peut être non null (défini ailleurs par exemple) mais la liste nulle.

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    je vous donne tout mon code, sachez que je n'ai que deux JSP, la premiere:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ page import="java.util.*"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>test</title>
    </head>
    <body>
    	<% 
            
            if(session.getAttribute("mot") == null)
                    {
            List <String> motsRecherches = new ArrayList<String>();          
            motsRecherches.add("language");
            motsRecherches.add("computer");
            motsRecherches.add("framework");
            motsRecherches.add("mouse");
            motsRecherches.add("plugin");
            motsRecherches.add("binary");
            motsRecherches.add("algorithm");
            
            int n =(int) ( Math.random()*(motsRecherches.size()));
            String motChoisi = motsRecherches.get(n);
            session.setAttribute("mot", motChoisi);
            session.setAttribute("liste", motsRecherches);
                    }
     
     
    for(int j=0; j<((String) session.getAttribute("mot")).length(); j++)
    {
            out.println("_ ");
    }
     
     
    %>
    	<form name="monForm" method="post" action="pendu.jsp">
     
    		<%
            int valChar=97;
            char c;
            %>
     
    		<label for="lettre">Choisissez une lettre</label> <select
    			name="lettre" size="1">
     
    			<%
            for(int i =0; i < 26; i++)
            {
                    c = (char) (valChar+i); 
            %>
     
    			<option><%=c %></option>
     
    			<%} %>
    		</select> <input type="submit" name="envoyer" value="Ok">
    	</form>
     
    </body>
    </html>
    la deuxieme :
    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
    37
    38
    39
    40
     
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ page import="java.util.*"%>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>penduuu</title>
    </head>
    <body>
    	<%  String motATrouver= (String) session.getAttribute("mot");
                    List<String> listeLettres = (List) session.getAttribute("liste");
                    String lettreChoisie=request.getParameter("lettre");
                    out.println(motATrouver);
                    out.println(listeLettres);%>
     
     
    			Vous avez choisi
    		<%= lettreChoisie%>
    	<form name="formReponse" method="post" action="test.jsp">	
     
    		<%
                    for (int a=0; a<motATrouver.length(); a++)
                            {
                            if(lettreChoisie.charAt(0) == motATrouver.charAt(a))
                            {
                                    out.println("la lettre " + lettreChoisie + " figure dans ce mot");
                            
                            }
                            }
                    %>
     
     
    		<input type="submit" name="send" value="Ok">
     
    	</form>
    </body>
    </html>
    Après la difficulté, la facilité...

  9. #9
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    tu ne rajoute la liste que si mot est null. Mais pour ce qu'on en sait, mot peut être non null (défini ailleurs par exemple) mais la liste nulle.
    Je pense à une session active récupérée, à cause du paramétrage du serveur: 30mn (les fichier *.ser). Lors de la première exécution du JSP, "mot" existait alors que "liste" non...

    Par être certain, l'erreur nullpointer exception N'est PLUS levée.
    ligne 17 - Listing 2(pendu.jsp ?):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.println(listeLettres)
    devrait afficher "null" sur la page de façon bien illisible.

    Il a été retesté ce code, après les modifications portée ????

  10. #10
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    Avec ce code, je recupere ma liste! je comprends pas trop ce qui c'etatit passé. desolé du temps perdu pour vous
    Après la difficulté, la facilité...

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

Discussions similaires

  1. [Performance]Recuperer une liste important de données
    Par Shivan dans le forum Hibernate
    Réponses: 2
    Dernier message: 10/02/2009, 20h57
  2. recuperer une liste de dataProvider
    Par charlix dans le forum Flash
    Réponses: 4
    Dernier message: 28/08/2008, 23h46
  3. Recuperer une liste (List) de valeur depuis une autre classe
    Par PasBoueno dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 22/07/2008, 14h53
  4. Réponses: 1
    Dernier message: 28/04/2008, 15h26
  5. Réponses: 5
    Dernier message: 11/05/2006, 19h20

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