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

Struts 1 Java Discussion :

Panier virtuel et session


Sujet :

Struts 1 Java

  1. #1
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut Panier virtuel et session
    Bonjour à tous

    voilà ce que je veux faire. je veux faire un panier virtuel pour un site d'acaht et le mettre en session de l'utilisateur afin d'afficher son contenu quand celui-ci le souhaite.

    j'ai crée l'action struts suivante pour faire des test. quand je clique sur sur un lien j'ajoute la référence du produite via l'action ci-dessous.

    mais quand j'affiche le panier il n'y a que le dernier produit ajouté qui s'affiche.
    je pense que j'ai des problème pour qu'il ajoute des différents objets dans le même arraylist de la session ou quelque chose comme ça...

    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
     
    import java.util.ArrayList;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.RedirectingActionForward;
     
    public class AddCart extends Action {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
     
    		String code_produit = request.getParameter("IdItem");
    		String referer = request.getHeader("referer");
    		ActionForward forward = null;
    		HttpSession session = request.getSession();
    		ArrayList<Cart> panier = new ArrayList<Cart>();
    		Cart cart = new Cart();
    		cart.setReference(code_produit);
    		panier.add(cart);
    		session.setAttribute("panier", panier);
    		forward = new RedirectingActionForward();
    		forward.setPath( referer );
     
    		return forward;
    	}
    }
    si vous pouvez m'aider.....

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Salut,

    le probleme vient du fait que tu cré à chaque fois une nouvelle liste. Voici une coreection possible :

    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
    public class AddCart extends Action {
    	
    	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    		
    		String code_produit = request.getParameter("IdItem");
    		String referer = request.getHeader("referer");
    		ActionForward forward = null;
    		HttpSession session = request.getSession();
                    ArrayList<Cart> panier = session.getAttribute("panier");
                    if(panier == null) {
    		   panier = new ArrayList<Cart>();
                    }
    		Cart cart = new Cart();
    		cart.setReference(code_produit);
    		panier.add(cart);
    		session.setAttribute("panier", panier);
    		forward = new RedirectingActionForward();
    		forward.setPath( referer );
    		
    		return forward;
    	}
    }

  3. #3
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    merci pour la réponse, ça marche nickel

    par contre, tu dis "voici une correction possible"

    quellle autre solution sont possibles (juste pour info..) ?

    je passe la question à résolu de toutes façons....

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Bah, tu aurais par exemple pu créer/initialiser ta liste à la connection de l'utilisateur mais il n'y a pas forcément d'intérêt... Je dis surtout ça pour me décharger si quelqu'un propose mieux

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

Discussions similaires

  1. [EJB3] panier virtuelle+session stateful
    Par faycel111 dans le forum Java EE
    Réponses: 0
    Dernier message: 13/04/2010, 21h01
  2. Panier virtuel session
    Par rosty38 dans le forum Struts 1
    Réponses: 0
    Dernier message: 02/07/2009, 02h59
  3. [Tableaux] panier virtuel
    Par Invité dans le forum Langage
    Réponses: 12
    Dernier message: 26/02/2006, 15h33
  4. Script panier virtuel
    Par chodaboy34 dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 17h49
  5. panier virtuel
    Par jive dans le forum ASP
    Réponses: 5
    Dernier message: 23/08/2005, 18h42

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