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 :

Problème parcours ArrayList


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut Problème parcours ArrayList
    Bonjour,
    J'ai crée une ArrayList que j'ai placé dans une session et que je souhaite parcourir avec un iterateur mais il y a une erreur que je ne comprend pas vraiment
    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
    <%! int zz=0;
    Article C=new Article();%>
    <% Client a= (Client)session.getAttribute("Client");
    ArrayList <Article> Panier= (ArrayList)session.getAttribute("panier"); 
    %>
    <table style="position:absolute;left:400px;top:350px;width:500px;height:250px;z-index:1;" cellpadding="0" cellspacing="1" id="Table1">
    <tr>
    <td style="background-color:transparent;border:1px #C0C0C0 solid;text-align:left;vertical-align:top;height:284px;">
    <CENTER>VOTRE PANIER</center>
    <% if(!Panier.isEmpty()){
        Iterator<Article> it = Panier.iterator();
     
    while(it.hasNext()){
        
        
    out.print("<li>");
    out.print(C);
    int b=C.getPrix();
    int c=C.getQuantiteCom();
    zz=(zz+ b*c);
    out.println("</li>");
    }out.print("Le prix total est: "+a);}
    %></td>
    </tr>
    </table>
    <jsp:include page="login.jsp" />
    Erreur
    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
    org.apache.jasper.JasperException: An exception occurred processing JSP page /Panier.jsp at line 56
     
    53: <tr>
    54: <td style="background-color:transparent;border:1px #C0C0C0 solid;text-align:left;vertical-align:top;height:284px;">
    55: <CENTER>VOTRE PANIER</center>
    56: <% if(!Panier.isEmpty()){
    57:     Iterator<Article> it = Panier.iterator();
    58: 
    59: while(it.hasNext()){
     
     
    Stacktrace:
            org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567)
            org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:471)
            org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
            org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
            org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
     
    cause mère
     
    java.lang.NullPointerException
            org.apache.jsp.Panier_jsp._jspService(Panier_jsp.java:122)
            org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
            org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
            org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
            org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Bonjour,

    Pour moi l'objet Panier est null d'ou le NullPointerException.
    Soit l'objet n'est pas crée dans la session soit il est perdu.

    A voir l’enchaînement d'appel de tes pages JSP qui doivent implémenter cette objet.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Bonjour,
    Merci pour ta réponse , mais si mon panier est vide l'instruction ne s’exécute pas et après ma page précedente est celle-ci :

    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
    <%-- 
        Document   : Order
        Created on : 29 juin 2012, 21:25:25
        Author     : anthony
    --%>
     <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
        <%@page import="java.util.*" %>
        <%@page import="java.awt.*"%>
        <%@page import="javax.servlet.*"%>
        <%@page import="java.sql.*"%>
        <%@page import="javax.sql.*"%>
        <%@page import="javax.naming.*"%>
        <%@page import="javax.servlet.http.*"%>
    <%@page import="java.util.ArrayList"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@page  import="fr.*" %>
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <% 
            Article articleA = new Article();
            Article articleB = new Article();
            Article articleC = new Article();
            Article articleD = new Article();
             System.out.print((Integer.getInteger(request.getParameter("artA"))+"     "+articleA.getQuantiteCom()));
            articleA.setQuantiteCom((Integer.getInteger(request.getParameter("artA")))+articleA.getQuantiteCom());
            articleB.setQuantiteCom((Integer.getInteger(request.getParameter("artB")))+articleB.getQuantiteCom());
            articleC.setQuantiteCom((Integer.getInteger(request.getParameter("artC")))+articleC.getQuantiteCom());
            articleD.setQuantiteCom((Integer.getInteger(request.getParameter("artD")))+articleD.getQuantiteCom());
            System.out.println(request.getParameter("artA"));
            ArrayList <Article> Panier = new ArrayList <Article>();
    Panier.add(articleA);
    Panier.add(articleB);Panier.add(articleC);Panier.add(articleD);
    session.setAttribute("panier", Panier);
    %>
    <jsp:forward page="Panier.jsp"/>
        </body>
    </html>
    Il doit y avoir quelque erreur de raisonnement mais j'essaie de faire ça grossièrement pour après quand je serai mieux en informatique étoffer
    Merci d'avance

  4. #4
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Ben justement pour être sûr, essai d'afficher au moins le contenu de ton objet "Panier" que tu récupères de la session, dans la page Panier.jsp pour voir s'il est null ou pas

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    justement c'est ce que j’essayé de faire avec mon iterateur

  6. #6
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Je crois j'ai trouvé ou ça merde dans ton code, tu mets en session la variable "panier" que tu remplisses par l'objet Panier dans la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("panier", Panier);
    Et dans ta page "Panier.jsp" tu essai de récupérer la variable "Panier" et pas "panier":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <% if(!Panier.isEmpty()){
     Iterator<Article> it = Panier.iterator();
     
     while(it.hasNext()){
    Donc essai de mettre "panier" au lieu de "Panier", comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <% if(!panier.isEmpty()){
     Iterator<Article> it = panier.iterator();
     
     while(it.hasNext()){

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Merci mais :/ j'ai essayé directement dans ma page order et apparement il ya un problème au niveau du Parseint et je ne comprend pas pourquoi , un request parameter est un type string non ?
    Alors un ParseInt le transforme en int ?
    Mon request provient d"une liste déroulante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Article A <SELECT name="artA" size="1">
                            <%for (int i =0; i < articleA.getQuantDisp() + 1; i++) {%>
                            <OPTION value="<%out.println(i);%>"><%=i%><%}%>
                        </SELECT><input type="submit" value="Acheter"></div>
    voila ma page qui met dans la session
    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
     
           <%! int zz=0;
    Article C=new Article();
           %>
     <% 
     Client a= (Client)session.getAttribute("Client");
     
            Article articleA = new Article();
            Article articleB = new Article();
            Article articleC = new Article();
            Article articleD = new Article();
               articleA.setQuantiteCom((Integer.parseInt(request.getParameter("artA")))+articleA.getQuantiteCom());
            articleB.setQuantiteCom((Integer.parseInt(request.getParameter("artB")))+articleB.getQuantiteCom());
            articleC.setQuantiteCom((Integer.parseInt(request.getParameter("artC")))+articleC.getQuantiteCom());
            articleD.setQuantiteCom((Integer.parseInt(request.getParameter("artD")))+articleD.getQuantiteCom());
            System.out.println(request.getParameter("artA"));
            ArrayList <Article> Panier = new ArrayList <Article>();
    Panier.add(articleA);
    Panier.add(articleB);Panier.add(articleC);Panier.add(articleD);
    session.setAttribute("Panier", Panier);
    if(!Panier.isEmpty()){
        Iterator<Article> it = Panier.iterator();
     
    while(it.hasNext()){
        
        
    out.print("<li>");
    out.print(C);
    int b=C.getPrix();
    int c=C.getQuantiteCom();
    zz=(zz+ b*c);
    out.println("</li>");
    }out.print("Le prix total est: "+a);}
     
    %>

  8. #8
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    request parameter est un type string non ?
    oui exactement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Alors un ParseInt le transforme en int ?
    Oui, mais le contenu doit être que du numérique et pas des chaines de caractères.

    Par contre sur cette ligne,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Client a= (Client)session.getAttribute("Client");
    je ne vois ou tu mets ton objet "Client" en session pour le récupérer à ce niveau.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    l'objet client entre dans la session au moment de la connexion en faite mais c'est plus tôt .
    Et l'erreur ne vient elle pas de la liste déroulante(même si j'avais vérifier ses paramètres et ils étaient bien numérique , peut être un espace qui s’insère? )?

  10. #10
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Quel est le contenu renvoyé par les lignes suivanes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("artA")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("artB")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("artC")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("artD")

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    ha tu as raison c'est null :/ ..
    Pourtant ma liste déroulante est bonne non ?

  12. #12
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    as-tu utilisé 'panier' au lieu de 'Panier' ?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    oui j'ai bien nommé les paniers mais je pense que c'est ma liste déroulante qui bug les valeurs ne sont pas transmisent pour recuperer la valeur d'une liste on utilise toujours request.getParameter("name") non?

  14. #14
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    essai avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT name="qte" size="1" onchange="submit();">
    au lieu de cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT name="qte" size="1">

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    non en fiate je me suis trompé les request marchent bien :/

Discussions similaires

  1. Problème parcours/recherche arbre-ArrayList
    Par tibet_gang dans le forum Collection et Stream
    Réponses: 0
    Dernier message: 07/02/2011, 10h13
  2. problème avec ArrayList et JVM
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 29
    Dernier message: 26/04/2007, 20h47
  3. problème avec arraylist
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/02/2007, 12h00
  4. [débutant] problème avec arraylist
    Par sissi25 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/12/2006, 16h01
  5. Problème avec ArrayList <String>
    Par fiphi dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 29/08/2006, 09h30

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