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.
code ajouteraupanier
code panier
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 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //recuperation de l'identifiant par le envoyer par le GET String id = request.getParameter("identifiant"); // on recupere la session de l'utilisateur HttpSession session = request.getSession(); Panier mon_panier = (Panier) session.getAttribute("mon_panier"); //si l'objet panier n'est pas crée, on crée un, associé a la session if (mon_panier == null) { mon_panier = new Panier(); //session.setAttribute(session.getId(), mon_panier); } List<Vehicule> m_panier = VehiculeFactory.rechercherVehiculeParId(id); request.getAttribute(id);// voir myform comme affichage details Vehicule v = new Vehicule(m_panier.get(0).getSerialid(), m_panier.get(0).getMarque(), m_panier.get(0).getModele(),m_panier.get(0).getPrix(), m_panier.get(0).getCouleur(), m_panier.get(0).getDetails()); session.setAttribute("vehiculesPanier", m_panier); mon_panier.ajouterLigne(v); return mapping.findForward(SUCCESS); }
code lignepanier
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 public class Panier implements Serializable { private List listesPanier = new ArrayList(); public List getListesPanier() { return listesPanier; } public void setListesPanier(List listesPanier) { this.listesPanier = listesPanier; } //constructeur public Panier() {} public void ajouterLigne(Vehicule v) { //on rajoute pas au panier une voiture déja ajouter Iterator i = listesPanier.iterator(); while(i.hasNext()) { LignePanier LaLigne = (LignePanier)i.next(); if(LaLigne.getV_panier().equals(v)) { return; } } //ajout de la voiture au panier listesPanier.add(new LignePanier(v)); } public void supprimerLigne(Vehicule v) { Iterator i = listesPanier.iterator(); while(i.hasNext()) { LignePanier LaLigne = (LignePanier)i.next(); if(LaLigne.getV_panier().equals(v)) { i.remove(); break; } } } public void viderPanier() { listesPanier.clear(); } }
merci
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 public class LignePanier implements Serializable { public Vehicule m_panier; public LignePanier(Vehicule m_panier) { this.m_panier = m_panier; } public Vehicule getV_panier() { return m_panier; } public void setV_panier(Vehicule m_panier) { this.m_panier = m_panier; } }
Partager