En el artículo anterior, el modelo MODE1 se usó para realizar la navegación de productos. Según el artículo anterior, este artículo utiliza la arquitectura MVC para realizar la compra del producto.
Resultados de ejecución:
En comparación con el artículo anterior, tenemos más carritos de compras. Como compramos artículos, el carrito de compras necesita atributos a los artículos y la cantidad comprados, utilizamos el valor de la clave del mapa para guardar los artículos comprados.
Por supuesto, también hay un precio total. El método del carrito de compras es agregar productos y eliminar productos para calcular el precio total . El precio total debe recalcularse cada vez que se agrega y elimine el producto. La colección de productos del carrito de compras solo se puede instanciar una vez cuando se inicializa el carrito de compras.
entidad de paquete; import java.util.hashmap; Cart de clase pública {// colección de productos de carrito de compras hashmap privado <elementos, integer> carto; // Cantidad total Precios de doble total privado; public Cart () {CART = new HashMap <items, integer> (); Total Prictos = 0.0; } public hashmap <items, integer> getCart () {return carrito; } public void setcart (hashmap <items, integer> car) {this.cart = car; } public Double GetTotalPrices () {return TotalPrices; } public void settotalPrices (Double TotalPrices) {this.totalPrices = TotalPrices; } // Agregue elementos al carrito de compras public boolean addTocart (elementos elementos, int cuenta) {// Si el elemento actual se ha agregado solo aumenta la cantidad if (CART.ContainsKey (item)) {CART.put (elemento, CART.get (item)+Counts); } else {Cart.put (elemento, cuenta); } // recalcular el precio caltotalPrice (item.getPrice ()*cuenta); devolver verdadero; } // Eliminar artículos del carrito de compras pública boolean removeFromCart (elemento elemento) {if (card! = Null && cart.containskey (item)) {caltotalPrice (-item.getPrice ()*car.get (elemento)); Cart.remove (artículo); } return verdadero; } // Calcule la cantidad total vacío privado CalTotalPrice (precio doble) {TotalPrices+= Price; }} El método Dogett de Cartservlet realiza el procesamiento correspondiente de acuerdo con la acción
if (request.getParameter ("Action")! = NULL) {Action = request.getParameter ("Action"); if ("add" .equals (acción)) {// Agregar producto if (addGoodStOcart (request, respuesta)) {request.getRequestDispatcher ("../ Success.jsp"). Award (request, respuesta); } else {request.getRequestDIsPatcher ("../ fails.jsp"). Forward (solicitud, respuesta); }} else if ("show" .equals (action)) {// show compras del carrito request.getRequestDispatcher ("../ cart.jsp"). avance (solicitud, respuesta); } else if ("eliminar" .equals (acción)) {// Elemento deleTeGoodFromCart (solicitud, respuesta); request.getRequestDIsPatcher ("../ card.jsp"). Forward (solicitud, respuesta); }} Cuando hacemos clic en la interfaz del producto para colocar el carrito, el número del producto actual se transfiere al servlet clase CartServlet del carrito. Comienza a procesar el elemento actual y poner el elemento actual en el carrito
Antes de ponerlo en el carrito de compras, primero determine si es la primera vez para crear un carrito de compras (definitivamente solo hay un carrito de compras, pero no múltiple). Si es la primera vez para crear un carrito de compras
Coloque el carrito de compras actual en la sesión y luego llame al método GetItembyID (ID) a través del objeto ElementosDAO para obtener el objeto del producto. Luego coloque el objeto del producto correspondiente y la cantidad del producto en el carrito de compras
// Agregar productos al carrito de compras booleano privado addGoodStocart (solicitud httpservletrequest, respuesta httpservletResponse) {string id = request.getParameter ("id"); String counts = request.getParameter ("num"); Elemento elemento = dao.getitembyid (integer.parseInt (id)); // discernir si es la primera vez para crear un carrito de compras if (request.getSession (). GetAttribute ("carto") == null) {carro de carry = new Cart (); request.getSession (). SetAttribute ("CART", CART); request.getSession (). SetAttribute ("Dao", DAO); } Cart Cart = (CART) request.getSession (). GetAttribute ("carro"); // Agregue el elemento al CART if (CART.AddToCart (item, integer.parseInt (Counts))) {return true; } else {return false; }} Si hace clic en VISE VER CARTCARTSERVLET REDIRACT AL CART PÁGINA
<%@ page lenguaje = "java" import = "java.util.*" contentType = "text/html; charset = utf-8"%> <%@ page import = "entity.tart"%> <%@ page import = "entity.items"%> <%string path = request.getContextPath (); String basepath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+ruta+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = " http-equiv = "cache-confontrol" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "palabras clave" content = "keyword1, weyword 2, keyword3"> <meta http-oquiv = "descripción" Content = "esto es mi página" << type = "text/css" href = "styles.css"> -> <link type = "text/css" rel = "stylesheet" href = "css/style1.css"/> <script language = "javaScript"> function delcfm () {if (! Confirm ("¿confirmar a eliminar?"))) {ventana. }} </script> </head> <body> <h1> mi carrito de compras </h1> <a href = "bueno.jsp"> inicio </a> >> <a href = "bueno Precio </th> <th> Cantidad de compra </th> <th> Action </th> </tr> <% // Primero juzga si hay un objeto de carrito de compras en la sesión if (request.getSession (). getAttribute ("carro")! = null) {%> <!-el inicio del bucle-> <% carro CART = (CART) request.getSession (). getAttribute ("" Cart "); Hashmap <items, integer> gots = carT.getCart (); Establecer <emems> elementos = bueno.keyset (); Iterador <emems> it = items.iterator (); while (it.hasnext ()) {elementos 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_id" <span> <%= i.getPrice ()*Goods.get (i)%> </span> <input type = "Hidden" valor = ""/> </td> <td> <%= bueno onClick = "delcfm ();"> eliminar </a> </td> </td> </tr> < %} %> <!-end de loop-> </aquil> <div> <span id = "total"> total: < %= card.getToTalPrices () %> ¥ </span> </div> < %} %> <Div> <Div> <put type = "Subsit" valor " </form> </div> </body> </html> Al hacer clic en Eliminar la clase Cartservlet de productos, la clase llama al método para eliminar el producto
// Eliminar los artículos del carrito de compras booleano privado DeletegoodFromCart (HttpservletRequest Solicitud, respuesta httpServletResponse) {// Obtener el objeto de carrito de compras de Session 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; }El código lógico es principalmente como se indicó anteriormente.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.