Dieser Artikel teilt den spezifischen Code des Einkaufswagenmoduls als Referenz. Der spezifische Inhalt ist wie folgt
Es ist keine Sitzung oder ein Cookie, sondern ein Tisch
> Fügen Sie einen Einkaufseintritt hinzu
> Ändern Sie die Anzahl der Einkaufseinträge
> Einen Eintrag löschen
> Batch -Löschung von Einträgen
> Mein Einkaufswagen, das heißt, Fragen nach Benutzern abfragen
> Abfragen Sie die überprüften Einträge ab
1. Datentabelle
Die Codekopie lautet wie folgt: Einfügen in `t_cartItem` (` Cartitemid`, `quantity`,` bid`, `uid`, ordnen by`) Werte ('B8939FC55131469CAB11E3924D40185B', 1, 'CE01F15D435A4C51B0AD8202A318DCA7', 'XXX', 11);
2.CartItem
öffentliche Klasse CartItem {private String Cartitemid; // Primärschlüssel private int Menge; // Quantity Private Book Book; // Buch entsprechend dem Eintrag privater Benutzer Benutzer; // Benutzer, zu dem der Benutzer // subtotale Methode public Double getubrtotal () {/** Es gibt keine Fehler, bei denen BigDecimal* erforderlich ist. BigDecimal (book.getCurrprice () + ""); BigDecimal B2 = neues BigDecimal (Menge + ""); BigDecimal B3 = B1.multiply (B2); return b3.doubleValue (); } public String getCartItemid () {return CartItemid; } public void setCartItemid (String cartitemid) {this.cartItemid = CartItemid; } public int getQuantity () {return quantity; } public void setQuantity (int Menge) {this.quantity = mantity; } public book getbook () {return book; } public void setbook (Buchbuch) {this.book = book; } public user getUser () {zurückgebener Benutzer; } public void setUser (Benutzer Benutzer) {this.user = user; }}Tipps: Es wird keine Fehler geben, BigDecimal in Java abzurunden
// Subtotale Methode public double getuBtotal () {/** Es gibt keinen Fehler bei der Verwendung von BigDecimal* Erfordert, dass der String -Typ -Konstruktor verwendet wird. BigDecimal B2 = neues BigDecimal (Menge + ""); BigDecimal B3 = B1.multiply (B2); return b3.doubleValue ();}3. Überprüfen Sie den Einkaufswageneintrag über Benutzer
Jeder Eintrag in meinem Einkaufswageneintrag muss den Listenpreis des Bilderbuchs anzeigen, was bedeutet, dass mehrere Tabellen erforderlich sind
öffentliche Liste <Cartitem> findByUser (String uid) löst SQLEXception {String sql = "aus t_cartItem c, t_book b, wo C.bid = B.bid und uid =? order by C.Orderby"; Liste <map <string, objekt >> maplist = qr.query (SQL, neuer Maplisthandler (), UID); tocartItemList (MAPLIST) zurückgeben;}4. Hinzufügen von Einkaufswageneinträgen ----- hinzufügen
JSP
<Div> <Form ID = "Form1" action = "<c: url value = '/cartitemServlet' //>" methode = "post"> <Eingabe type = "Hidden" name = "methode" value = "add"/> <Eingabe type = "Hidden" name = "bid" value = "$ {book.bid}". value = "1"/> </form> <a id = "btn" href = "javaScript: $ ('#Form1'). subled ();"> </a> </div>CartitemServlet
public String add (httpServletRequest req, httpServletResponse resp) löst ServletException aus, ioException { / * * 1. Kapitelle Formdaten in CartItem (BID, Quantität) * / MAP MAP = req.getParametermap (); Cartitem Cartitem = CommonUtils.tobean (Karte, Cartitem.Class); Book book = CommonUtils.tobean (Karte, book.class); User user = (user) req.getSession (). GetAtTribute ("SessionUser"); Cartitem.Setbook (Buch); CartItem.SetUser (Benutzer); CartitemService.add (Cartitem); Mycart zurückgeben (req, resp);}CartitemService
public void add (cartitem cartitem) {try { /** 1. Verwenden Sie UID und bieten Sie ein, ob dieser Eintrag in der Datenbank vorhanden ist if (_cartItem == null) {// wenn es keinen solchen Eintrag gab, fügen Sie den Eintrags -Cartitem.setCartItemid hinzu (CommonUtils.uuid ()); CartItemdao.addcartItem (CartItem); } else {// Wenn es diesen Eintrag gab, ändern Sie die Nummer // die ursprüngliche Menge und die Anzahl der neuen Einträge, die als neue Menge int quantity = cartitem.getQuantity () + _cartItem.getQuantity () verwendet werden sollen; // Die Menge dieses alten Eintrags cartitemdao.updatequantity (_cartItem.getCartItemid (), Menge) ändern; }} catch (Ausnahme E) {neue runTimeException (e) werfen; }}Cartitemdao
public void addCartItem (Cartitem CartItem) löst SQLEXception {String sql = "in T_CartItem (Cartitemid, Menge, Bid, UID)" + "-Werte (?,?,?,?) aus. Object [] params = {Cartitem.getCartItemid (), Cartitem.getQuantity (), Cartitem.getbid (), Cartitem.getUser (). Getuid ()}; qr.update (SQL, Params);}5. Einkaufswagen-Modulseite JavaScript ---- Überprüfen Sie
Berechnen Sie die Gesamtsumme
Klicken Sie auf Ereignis, um alle auszuwählen
Klicken Sie auf das Kontrollkästchen für alle Einträge auf das Kontrollkästchen auf.
Fügen Sie dem Minus -Zeichen Klick -Ereignis hinzu
Klicken Sie auf das Plus -Zeichen auf Ereignis
Stapel löschen
list.jsp
<%@ page Language = "java" import = "java.util. uri="http://java.sun.com/jsp/jstl/functions"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>cartlist.jsp</title> <meta http-equiv="pragma" content="no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type="text/css" href="styles.css"> --> <script src="<c:url value='/jquery/jquery-1.5.1.js'/>"></script> <script src="<c:url value='/js/round.js'/>"></script> <link rel="stylesheet" type="text/css" href = "<c: url value = '/JSPS/CSS/cart/list.css' //>"> <script type = "text/javaScript"> $ (function () {showtotal (); // Berechnen Sie das Gesamt-/* Klick -Ereignis, um alle*/$ ("#Selekten zu wählen. $ ("#selectAll"). attr ("geprüft"); /* 2. synchronisieren Sie die Kontrollkästchen aller Einträge mit dem ausgewählten Status*/ setItemCheckBox (bool); /* 3.. /* 4. Berechnen Sie die Gesamtzahl*/ showtotal () neu; }); /* Klicken Sie auf Ereignis zu den Kontrollkästchen aller Einträge*/$ (": Kontrollkästchen [Name = CheckBoxBtn]"). Click (function () {var all = $ (": checkBox [name = CheckBoxBtn]"). Länge; // Die Anzahl aller Einträge VAR SELECT = $ (": Kontrollkästchen [name = checkBoxe). {// alle $ ("#selectAll"). Attr ("geprüft", true); // Überprüfen Sie das Kontrollkästchen Alle Kontrollkästchen setjiesuan (true); // Machen Sie die Checkout -Schaltfläche gültig} else if (select == 0) {// Niemand ausgewählt $ ("#Selectall"). Attr ("achte). $ ("#selectAll"). attr ("geprüft", false); // ALLE SETJIESUAN (Falsch); // Kasse abbrechen} else {$ ("#selectAll"). attr ("geprüft", false); // ALLE SETJIESUAN (TRUE); // let Siedlung gültig}} setztotal (); // calculate}); /* Klicken Sie zum MINUS -Signal klicken Sie auf das Minus -Zeichen*/ $ (". Jian"). Click (function () {// Cartitemid var id = $ (this) .attr ("ID"). Substring (0, 32); // Die Menge in der Eingangsbox -Var -Menge = $ ("#" + id + "Größe. Aber löschen Sie es. // Klicken Sie auf Ereignis $ (". JIA"). Click (function () {// Cartitemid var id = $ (this) .attr ("id"). Substring (0, 32); // Die Nummer in der Eingabebox var Menge = $ ("#" + id + "Menge"). Val (); Ändern Sie die Menge. Funktion sendUpdatequantity (ID, Menge) {$ .ajax ({async: false, cache: false, url: "/good/cartitemServlet", Daten: {Methode: "Updatequantity", CartItemid: ID, Menge: Quantität}, Typ: "post", datatype: "| "Quantität"). /* 1. Alle Kontrollkästchen für überprüfte Einträge erhalten! Loop Traversal */$ (": checkBox [name = CheckBoxBtn] [checked = true]"). Jede (Funktion () () {// 2. Erhalten Sie den Wert des Kontrollfelds, dh das Präfix anderer Elemente var id = $ (this) .val (); // 3. // 4. // 5. Zeigen Sie die Gesamtsumme im Gesamtelement $ ("#Gesamt") an. Text (Runde (Gesamt, 2)); // Die Funktion der rund () -Funktion besteht darin, die Gesamt 2 Bits}/ * * für alle Einträge in Uniform */Funktion setItemCheckbox (bool) {$ (": CheckBox [name = CheckBoxBtn]. $ ("#jiesuan"). removeclass ("Kill"). AddClass ("Jiesuan"); $ ("#jiesuan"). Unbind ("Click"); // Alle Klicken Sie auf Ereignisse des aktuellen Elements} else {$ ("#jiesuan"). removeclass ("jiesuan"). $ ("#jiesuan"). click (function () {return false;}); }}/** Batch -Löschen*/Funktion batchDelete () {// 1. Erstellen Sie die Kontrollkästchen für alle ausgewählten Einträge // 2. Erstellen Sie ein Array und fügen Sie die Werte aller ausgewählten Kontrollkästchen zum Array // 3. Geben Sie den Standort als CartitemServlet, Parameter -Methode = batchDel, Parameter Cartitemids) an. $ (": checkBox [name = puCtBoxBtn] [checked = true]"). Jede (Funktion () {Cartitemidarray.push ($ (this) .val (); // Fügen Sie den Wert des Kontrollkästchens dem Array hinzu}); location = "/good/cartitemServlet? methode = batchDelete & cartitemidarray;}/** checkout*/function jiesuan () {// 1. Holen Sie sich die IDs aller ausgewählten Einträge und legen Sie sie in das Array var Cartitemidarray = new Array (); CartItemidarray.push ($) .val ()); // den Wert des Kontrollkästchens dem Array} addieren. $ ("#HidDentotal"). Val ($ ("#Total"). text ()); align = "right"> <img align = "top" src = "<c: url value = '/bilder/icon_empty.png' ////"/> </td> <td> <span> Es gibt keine Produkte in Ihrem Wagen </span> </td> </tr> </table> </c: wenn> </c: ansonsten> <cabable = "center" center "center" cabledtable> </c: wenn> <c: ansonsten> <ca. cellpacing = "0"> <tr align = "center" bgcolor = "#efeae5"> <td align = "links"> <Eingabe type = "checkBox" id = "selectAll" checked = "checked"/> <label für = "selectall"> alle </td> <td> <tds colspan = "2"> Produktname </td> <td> <td./td> product "> product name </td> <td> <td. <td> Menge </td> <td> subtotal </td> <td> operation </td> </td> </td> </tr> <c: foreach items = "$ {cartitemlist}" var = "cartitem"> <tr align = "center"> <td align = "links" - $ "<$" {$ {{{{Cartem.Cartem " - {> <> <input" <$ "{{{{{{Cartem.Cartem. type = "checkbox" name = "checkBoxBtn" checked = "checked"/> </td> <td align = "links"> <a href = "<c: url value = '/JSPS/book/desc.jsp'/>"> <img align = "top" src = "<c: url value </td> <td align = "links"> <a href = "<c: url value = '/JSPS/book/desc.jsp'/>"> <span> $ {cartitem.book id = "$ {cartitem.cartItemid} jian"> </a> <Eingabe readonly = "readonly" id = "$ {cartitem.cartItemid} quantität" Typ = "text" value = "$ {cartitem.quantity}"/> <a id = "{{{Cartitem.cartem.cartitem} jia" <span> ¥ <span id = "$ {cartitem.cartItemid} subtotal"> $ {cartitem.subtotal} </span> </span> </td> <td> <a href = "<c: url value = '/cartitems evlet? } '/> "> Delete </a> </td> </td> </tr> </c: foreach> <tr> <td colspan =" 4 "> <a href =" JavaScript: batchdelete (); ID = "Total"> </span> </span> </td> </tr> <tr> <td colspan = "7" align = "right"> <a href = "javaScript: jiesuan ();" id = "jiesuan" value = '/cartitemServlet' //> "methode =" post "> <Eingabe type =" Hidden "name =" cartitemids "id =" cartitemids "/> <Eingabe type =" Hidden "name =" Total "id =" Hiddentotal "/> </ca.-/c -name =" methode ". </body> </html>Tipps: runde Runde.js in js
// 5. Zeigen Sie die Gesamtsumme im Gesamtelement $ ("#Gesamt") an.6. Batch-Löschfunktion ---- Löschen
JSP
Funktion batchDelete () {// 1. Erstellen Sie die Kontrollkästchen für alle ausgewählten Einträge // 2. Erstellen Sie ein Array und fügen Sie die Werte aller ausgewählten Kontrollkästchen zum Array // 3 hinzu. Geben Sie den Ort als CartitemServlet an, Parametermethode = batchdelete, Parameter Cartitemids = tostring () des Array var Cartitemidarray = New Array (). $ (": checkBox [name = puCtBoxBtn] [checked = true]"). Jede (Funktion () {Cartitemidarray.push ($ (this) .val (); // Fügen Sie den Wert des Kontrollkästchens dem Array hinzu}); location = "/goods/cartitemServlet? methode = batchDelete & cartitemids =" + cartitemidarray;}Löschen
if (mantity == 1) {if (bestätigen ("Bestätigen (" Möchten Sie den Eintrag wirklich löschen? ") {location ="/goods/cartitemServlet? method = batchDelete & cartitemids = " + id; }} anders {7. Anzahl der Modifikationen ----- Ändern
JSP
// Fordern Sie den Server an und ändern Sie die Nummer. Funktion sendUpdatequantity (ID, Menge) {$ .ajax ({async: false, cache: false, url: "/good/cartitemServlet", Daten: {Methode: "Updatequantity", CartItemid: ID, Menge: Quantität}, Typ: "post", datatype: "| "Quantität").Servlet
public String updateQuantity (httpServletRequest req, httpServletResponse resp) löst ServletException aus, iOException {String cartitemid = req.getParameter ("CartItemid"); int mantity = integer.parseInt (req.getParameter ("Menge")); Cartitem Cartitem = CartitemService.Updatequantity (CartItemid, Menge); // Rückgabe eines JSON -Objekts an den Client StringBuilder sb = new StringBuilder ("{"); sb.append ("/" mantitity/""). append (":"). append (cartitem.getQuantity ()); sb.Append (","); sb.append ("/" subtotal/""). append (":"). append (Cartitem.getSubtotal ()); sb.Append ("}"); resp.getWriter (). print (SB); Null zurückgeben;}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.