Dans l'article précédent, le modèle MOCY1 a été utilisé pour réaliser la navigation de produit. Sur la base de l'article précédent, cet article utilise l'architecture MVC pour réaliser l'achat de produit.
Résultats en cours:
Par rapport à l'article précédent, nous avons plus de caddages. Étant donné que lorsque nous achetons des articles, le panier a besoin d'attributs aux articles achetés et à la quantité, nous utilisons la valeur de la clé de la carte pour enregistrer les articles achetés.
Bien sûr, il y a aussi un prix total. La méthode de panier est d' ajouter des produits et de supprimer des produits pour calculer le prix total . Le prix total doit être recalculé chaque fois que le produit est ajouté et supprimé. La collection de produits de panier ne peut être instanciée qu'une fois que lorsque le panier est initialisé.
entité de package; import java.util.hashmap; Classe publique Cart {// Collection de produits de panier de panier Hashmap privé <articles, entier> CART; // Montant total Total privé Total des prix; CART public () {CART = new HashMap <Items, Integer> (); TotalPrices = 0,0; } public hashmap <items, Integer> getCart () {return Cart; } public void setCart (hashmap <items, entier> cart) {this.cart = cart; } public double getTotalPrices () {return totalPrices; } public void SettotalPrices (Double TotalPrices) {this.totalPrices = TotalPrices; } // Ajouter des articles dans le panier public booléen addtocart (objets d'articles, int couns) {// si l'article actuel a été ajouté n'augmente que la quantité if (cart.containsKey (item)) {cart.put (item, cart.get (item) + comptes); } else {cart.put (item, coutes); } // Recalculer le prix CaltotalPrice (item.getPrice () * compte); Retour Vrai; } // Supprimer les articles du panier de magasin public booléen delèvefromcart (objets d'articles) {if (cart! = Null && cart.containsKey (item)) {caltotalprice (-item.getprice () * Cart.get (item)); CART.Remove (article); } return true; } // Calculez le montant total privé void caltotalprice (double prix) {totalPrices + = prix; }} La méthode Dogett de CartServlet effectue un traitement correspondant en fonction de l'action
if (request.getParameter ("action")! = null) {action = request.getParameter ("action"); if ("add" .equals (action)) {// ajouter du produit if (addGoodStoCart (request, réponse)) {request.getRequestDispatcher ("../ Success.jsp"). Forward (request, réponse); } else {request.getRequestDispatcher ("../ défaillance.jsp"). Forward (request, réponse); }} else if ("show" .equals (action)) {// show shopping cart request.getRequestDispatcher ("../ cart.jsp"). Forward (demande, réponse); } else if ("delete" .equals (action)) {// supprimer l'élément DeleteGoodFromCart (request, réponse); request.getRequestDispatcher ("../ cart.jsp"). Forward (demande, réponse); }} Lorsque nous cliquons sur l'interface du produit pour mettre le chariot, le nombre du produit actuel est transféré à la classe de servlet Cartservlet du panier. Il commence à traiter l'élément actuel et à mettre l'élément actuel dans le panier
Avant de le mettre dans le panier, déterminez d'abord s'il s'agit la première fois de créer un panier (il n'y a certainement qu'un seul panier, mais pas plusieurs). Si c'est la première fois pour créer un panier
Mettez le panier d'achat actuel en session, puis appelez la méthode GetItembyId (ID) via l'objet itemsdao pour obtenir l'objet produit. Ensuite, mettez l'objet produit correspondant et la quantité de produit dans le panier d'achat
// Ajouter des produits au panier de magasinage Boolean AddGoodStocart (demande httpservletRequest, réponse httpservletResponse) {String id = request.getParAmètre ("id"); String counts = request.getParameter ("num"); Éléments item = dao.getItembyId (Integer.ParseInt (id)); // discerner si c'est la première fois pour créer un panier d'achat si (request.getSession (). GetAttribute ("Cart") == NULL) {Cart Cart = new Cart (); request.getSession (). SetAttribute ("CART", CART); request.getSession (). setAttribute ("dao", dao); } CART CART = (CART) request.getSession (). GetAttribute ("CART"); // Ajouter l'élément au panier if (cart.addtocart (item, Integer.ParseInt (coutes))) {return true; } else {return false; }} Si vous cliquez sur Afficher CartcartServlet Redirection vers la page CART
<% @ page Language = "Java" import = "java.util. *" contentType = "text / html; charset = utf-8"%> <% @ page import = "Entity.cart"%> <% @ page import = "entity.items"%> <% String path = request.getContedPath (); String basepath = request.getscheme () + ": //" + request.getServerName () + ":" + request.getServerport () + path + "/"; %> <! Doctype html public "- // w3c // dtd html 4.01 transitional // en"> <html> <adread> <base href = "<% = basepath%>"> <titre> mon jsp 'cart.jsp' Page de départ </ title> <meta http-equiv = "Pragma" Contenu = "non-Cache"> <méta http-equiv = "cache-control" contenu = "no-cache"> <meta http-equiv = "expires" contenu = "0"> <meta http-equiv = "keywords" contenu = "keyword1, keyword2, keyword3"> <meta http-equiv = "description" contenu = "c'est ma page"> <! type = "text / css" href = "Styles.css"> -> <link type = "text / css" rel = "Stylesheet" href = "css / style1.css" /> <script linguisse = "javascript"> function delcfm () {if (! Confraction (confirmer à delever? }} </ script> </ head> <body> <h1> mon panier </h1> <a href = "GOODS.jsp"> home </a> >> <a href = "GOODS.JSP"> Liste de produits </a> <hr> <div id = "shopping"> <form action = "" Méthode = "> <pable> <tr> <th> Product Name </ th> <th> Product Price </pall> <tr> <th> Product Name </ th> <th> Product Price </ th> Product Name <TH> PRODUCTED PRODUT Price </th> <th> Achat Quantity </ Th> <Th> Action </ Th> </tr> <% // Premier jugez s'il y a un objet de panier dans la session if (request.getSession (). GetAttribute ("CART")! = NULL) {%> <! - Le début de la boucle -> <% Cart Cart = (CART) request.getSession (). Hashmap <items, entier> goches = cart.getCart (); Set <émiers> items = good.KeySet (); Iterator <émiers> it = items.Itator (); while (it.hasnext ()) {items i = it.next (); %> <tr name = "Products" id = "product_id_1"> <td> <img src = "images / <% = i.getPicture ()%>" /> <a href = ""> <% = i.getName ()%> </a> </ td> <td> <% = i.getPrice () %> </td> <td id = "Price_1"> <span> <% = i.getPrice () * goods.get (i)%> </span> <input type = "Hidden" value = "" /> </td> <td> <% = GOODS.get (i)%> </td> <td> <a href = "servlet / cartServlet? Action = delete & id = <% = i.getID ()%>" onclick = "delcfm ();"> delete </a> </td> </td> </tr> <%}%> <! - Fin de la boucle -> </ table> <div> <span id = "total"> Total: <% = cart.gettotalPrices () %> ¥ </span> </v> <%} %> <v> <pout type = "soumet" / "/> </v> </ form> </div> </ody> </html> Lorsque vous cliquez sur Supprimer le produit CartServlet Class appelle la méthode pour supprimer le produit
// Supprimer les articles du panier de magasinage privé boolean DeletegoodFromCart (demande httpservletRequest, réponse httpservletResponse) {// Obtenez l'objet de panier de la session Cart Cart = (CART) request.getSession (). GetAttribute ("Cart"); if (cart! = null) {int id = Integer.ParseInt (request.getParameter ("id")); if (Cart.RemoveFromCart (dao.getItembyId (id))) {return true; }} return false; }Le code logique est principalement comme ci-dessus.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.