Artikel ini membagikan kode spesifik modul keranjang belanja untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Ini bukan sesi atau cookie, tapi meja
> Tambahkan entri belanja
> Ubah jumlah entri belanja
> Hapus entri
> Penghapusan Batch Entri
> Keranjang belanja saya, yaitu item kueri dengan pengguna
> Permintaan entri yang diperiksa
1. Tabel data
Salinan kode adalah sebagai berikut: masukkan ke `t_cartitem` (` cartitemid`, `kuantitas`,` bid`, `uid`,` `ordby`) nilai ('B8939FC55131469CAB11E3924D40185B', 1, 'CE01F15D435A4C51B0AD8202A318DCA7', 'xxx', 11);
2.Cartitem
cartitem kelas publik {private string cartitemid; // kunci primer kuantitas int privat; // kuantitas buku buku pribadi; // buku yang sesuai dengan entri pengguna privat pengguna; // pengguna yang mana pengguna // tambahkan metode subtotal ganda ganda publik getsubtotal () {/** tidak akan ada kesalahan b ( BigDecimal (book.getCurrprice () + ""); BigDecimal B2 = BigDecimal baru (kuantitas + ""); BigDecimal B3 = B1.Multiply (B2); return b3.doublevalue (); } public string getCartItemId () {return cartitemid; } public void setCartItemId (String cartItemid) {this.cartitemid = cartitemid; } public int getquantity () {kuantitas pengembalian; } public void setquantity (int kuantitas) {this.quantity = kuantitas; } buku publik getBook () {Buku kembali; } public void setbook (buku buku) {this.book = book; } pengguna publik getUser () {return user; } public void setUser (pengguna pengguna) {this.user = user; }}Tips: Tidak akan ada kesalahan dalam membulatkan BigDecimal di Java
// Tambahkan metode subtotal getsubtotal publik () {/** tidak akan ada kesalahan saat menggunakan BigDecimal* membutuhkan konstruktor tipe string untuk digunakan*/ BigDecimal b1 = BigDecimal baru (book.getCurrprice () + ""); BigDecimal B2 = BigDecimal baru (kuantitas + ""); BigDecimal B3 = B1.Multiply (B2); kembalikan b3.doublevalue ();}3. Periksa entri keranjang belanja melalui pengguna
Setiap entri dalam entri keranjang belanja saya perlu menampilkan daftar harga buku bergambar, yang berarti beberapa tabel diperlukan
Daftar Publik <CartItem> findByUser (String UID) melempar SQlexception {string sql = "Select * dari t_cartitem C, t_book b di mana c.bid = b.bid dan uid =? pesanan oleh c.orderby"; Daftar <peta <string, objek >> maplist = qr.query (sql, maplisthandler baru (), uid); return tocartitemlist (maplist);}4. Tambahkan entri keranjang belanja ----- Tambahkan
jsp
<div> <form id="form1" action="<c:url value='/CartItemServlet'//>" method="post"> <input type="hidden" name="method" value="add"/> <input type="hidden" name="bid" value="${book.bid }"/> I want to buy: <input id="cnt" type="text" name="quantity" value = "1"/> </form> <a id = "btn" href = "javascript: $ ('#form1'). Kirim ();"> </a> </div>Cartitemservlet
PUBLIK PUBLIK ADD (HTTPSERVLETREQUEST REQ, HTTPSERVLETRESPONSE RESP) melempar ServletException, ioException { / * * 1. Mengenak data formulir ke cartitem (BID, kuantitas) * / peta peta = req.getParametermap (); Cartitem cartitem = commonils.tobean (peta, cartitem.class); Buku buku = commonils.tobean (peta, book.class); Pengguna pengguna = (pengguna) req.getSession (). GetAttribute ("sessionUser"); cartitem.setbook (buku); cartitem.setuser (pengguna); cartitemservice.add (cartitem); kembalikan mycart (req, resp);}CartItemService
public void add (cartitem cartitem) {coba { /** 1. Gunakan uid dan tawaran untuk menanyakan apakah entri ini ada dalam database* / cartitem _cartitem = cartitemdao.findbyuidandbid (cartitem.getuser (). getuid (), cartitem.getBook (). if (_cartitem == null) {// Jika tidak ada entri seperti itu, tambahkan entri cartitem.setCartitemid (commonutils.uuid ()); cartitemdao.addcartitem (cartitem); } else {// Jika ada entri ini, modifikasi angka // gunakan jumlah asli dan jumlah entri baru yang akan digunakan sebagai kuantitas baru int kuantitas = cartitem.getquantity () + _cartitem.getQuantity (); // Ubah kuantitas entri lama ini cartitemdao.updatequantity (_cartitem.getCartitemId (), kuantitas); }} catch (Exception e) {lempar runtimeException baru (e); }}Cartitemdao
public void addCartItem (cartitem cartitem) melempar sqlexception {string sql = "masukkan ke t_cartitem (cartitemid, kuantitas, tawaran, uid)" + "nilai (?,?,?)"; Objek [] params = {cartitem.getCartItemId (), cartitem.getquantity (), cartitem.getbid (), cartitem.getUser (). Getuid ()}; qr.update (sql, params);}5. Halaman Modul Belanja JavaScript ---- Periksa
Hitung totalnya
Tambahkan Acara Klik untuk Memilih Semua
Tambahkan Acara Klik ke kotak centang untuk semua entri
Tambahkan Klik Acara ke tanda minus
Tambahkan Acara Klik ke tanda plus
Hapus Batch
list.jsp
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix = "fn" URI = "http://java.sun.com/jsp/jstl/functions"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // <html> <head> <title> cartlist.jsps </title> <htsAph =" noaPa = "noa-content" noApma = "noa-contents =" no-contice = "noa-contice =" noa-contice = "noa-contition =" noa-contition> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "kedaluwarsa" konten = "0"> <meta http-equiv = "kata kunci" konten = "kata kunci1, kata kunci2, koki"> <meta http http-equiv = "koki" ini = "ini" 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'/"> </scrips = "TOPE =" TOPE = "/JS/ROUND.JS '/"> </CATCAN "" href = "<c: value url = '/jsps/css/cart/list.css' ///>"> <script type = "text/javascript"> $ (function () {showTotal (); // Hitung total/* Tambah Klik Acara untuk memilih semua*/$ ("#selectall"). Function () {) {) {) {) {) {) {). $ ("#selectAll"). attr ("checked"); /* 2. Sinkronisasi kotak centang dari semua entri dengan semua status*/ setitemCheckbox yang dipilih (bool); /* 3. Menyinkronkan tombol checkout dengan semua*/ setjiesuan (bool) yang dipilih; /* 4. Hitung ulang total*/ showtotal (); }); /* Tambahkan Klik Event ke kotak centang dari semua entri*/$ (": kotak centang [name = centang kotak]"). Klik (fungsi () {var all = $ (": kotak centang [name = centang kotak]"). Panjang; // Jumlah semua entri var select = $ (": centang [name = centang = centang = centang = name = name = checkboxbtn] [checked = ragi). {//All $("#selectAll").attr("checked", true);//Check the checkbox all check box setJieSuan(true);//Make the checkout button valid} else if(select == 0) {//No one selected $("#selectAll").attr("checked", false);//Cancel all setJieSuan(false);//Cancel checkout} else { $ ("#selectAll"). attr ("checked", false); // batalkan semua setjiesuan (false); // batalkan checkout} else {$ ("#selectall"). attr ("checked", false); // batal semua setjiesuan (true); // biarkan penyelesaian valid} showtotal (); // recalc (true)); /* Tambahkan Klik Acara ke tanda minus*/ $ (". Jian"). Klik (function () {// Dapatkan cartitemid var id = $ (ini) .attr ("id"). Substring (0, 32); // Dapatkan kuantitas dalam kuantitas input var kuantitas saat ini. kuantitas, tetapi menghapusnya. // Tambahkan Klik Event $ (". Jia"). Klik (function () {// Dapatkan cartitemid var id = $ (ini) .attr ("id"). Substring (0, 32); // Dapatkan nomor di kotak input var kuantitas = $ ("#" + ID + "kuantitas"). Val (); sendupdateQuantity (ID, NOMOR) (NOMOR) (NOMOR) (NOMOR); Kuantitas); kuantitas); kuantitas); oMeTITY (ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID, ID (ID); dan memodifikasi kuantitas. fungsi sendUpdatequantity (id, kuantitas) {$ .Ajax ({async: false, cache: false, url: "/goods/cartitemservlet", data: {Metode: "updatequantity", cartitemid: id kuantitas: kuantitas}, type: "post", datatipe: "json", "function" (function}}, "post". "Kuantitas"). Val. /* 1. Dapatkan semua kotak centang Entri yang dicentang! Loop Traversal */$ (": kotak centang [name = centang kotak] [checked = true]"). Masing -masing (fungsi () {// 2. Dapatkan nilai kotak centang, yaitu, awalan elemen lain var id = $ (this) .val (); // 3. "Temukan subtotal elemen melalui Prefix dan dapatkan TEKS ();" TEXT = "" TEXT = "" TEKS). " // 4. Hitung Total += Teks); // 5. Tampilkan total pada total elemen $ ("#total"). Teks (putaran (total, 2)); // Fungsi fungsi round () adalah untuk mempertahankan total 2 bit}/ * * Atur tombol periksa untuk semua entri dalam seragam */fungsi setitemCheckbox (bool) {$ (": kotak centang [name = centang kotak]"). ATTRJiesUean (bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) {bool) $ ("#Jiesuan"). Removeclass ("Kill"). AddClass ("Jiesuan"); $ ("#jiesuan"). unbind ("klik"); // Batalkan semua klik peristiwa dari elemen saat ini} else {$ ("#jiesuan"). RemoveClass ("jiesuan"). addClass ("kill"); $ ("#jiesuan"). Klik (function () {return false;}); }}/** Batch delete*/function BatchDelete () {// 1. Dapatkan kotak centang untuk semua entri yang dipilih // 2. Buat array dan tambahkan nilai semua kotak centang yang dipilih ke array // 3. Tentukan Parameter (Parameter) (parameter Metode = Parameter = BatchDelete, parameter Kartitemid = Parameter = Parameter = Parameter = Parameter = Parameter = Parameter = Parameter = Parameter = Parameter = Parameter THAYRING (parameter THAYREY (parameter = parameter = parameter cartitemid (parameter = parameter = parameter = parameter = parameter tisray) $ (": kotak centang [name = checkboxbtn] [checked = true]"). masing -masing (fungsi () {cartitemidarray.push ($ (this) .val ()); // Tambahkan nilai kotak centang ke array}); Lokasi = "/Barang/CartItemServlet? Metode = BatchDelete & CartItemidArray;}/** Checkout*/function jiesuan () {// 1. Dapatkan ID dari semua entri yang dipilih dan masukkan ke dalam array var cartitemidarray = array baru (); $ (": centang [name = centang = centang] () (setiap centang =) (masing -masing). cartitemidarray.push ($ (ini) .val ()); // Tambahkan nilai kotak centang ke array}); $ ("#hiddentotal"). Val ($ ("#total"). Teks ()); // 3. Kirim formulir ini $ ("#Jiesuanform"). <tr> <td align = "right"> <img align = "atas" src = "<c: nilai url = '/gambar/icon_empty.png' ////"//> </td> <td> <span> tidak ada produk di cart Anda </span> </td> </tr> </tabel> "colding" tidak ada </span> </td> </tr> </tabel> </c: CellPacing = "0"> <tr align = "center" bgcolor = "#eFeaE5"> <td align = "kiri"> <input type = "centang kotak" id = "selectAll" checked = "checked"/<label untuk = "selectAll"> Pilih semua </label> </td> <td colspan = "2"> Pilih semua </label> </td> <td colspan = "2" <td>Quantity</td> <td>Subtotal</td> <td>Operation</td> </td> </td> </tr><c:forEach items="${cartItemList }" var="cartItem"> <tr align="center"> <td align="left"> <input value="${cartItem.cartItemId }" type = "centang kotak" name = "centang kotak" checked = "checked"/> </td> <td align = "left"> <a href = "<c: url value = '/jsps/book/desc.jsp'/$"> <img align = "atas" src = "<c: url value = '/$" </td> <td align = "left"> <a href = "<c: url value = '/jsps/book/desc.jsp'/>"> <span> $ {cartitem.book.bname} </span> </a> </td> <td> <span> $ {cartitem.curr> </a> </td> <td> <span> $ {cartitem.curr> id = "$ {cartitem.cartitemid} jian"> </a> <input readonly = "readonly" id = "$ {cartitem.cartitemid} kuantitas" type = "text" value = "$ {cartitem.quantity}"/> <a id = "$ {cartitem.cartitem <span> ¥ <span id = "$ {cartitem.cartitemId} subtotal"> $ {cartitem.subtotal} </span> </span> </td> <td> <a href = "<c: nilai url = '/cartitemservlet. } '/> "> Hapus </a> </td> </td> </tr> </c: foreach> <tr> <td colspan =" 4 "> <a href =" JavaScript: BatchDelete (); "> </a> </td> </td colspan =" 3 "ALIGN> </a> </a> </td> <td colspan =" 3 "align" ran> </a> </a> </td> <td colspan = "3" align "kanan" "RANT" </a> </a> </a> </a> </td> <tp -span = "3" ID = "Total"> </span> </span> </td> </tr> <tr> <td colspan = "7" align = "right"> <a href = "javascript: jiesuan ();" ID = "jiesuan"> </a> </td> </tr> </tabel> </jiesuan "> </a> </td> </tr> </tabel> </formulir =" value = '/cartItemServlet' //> "Method =" Post "> <input type =" hidden "name =" cartitemids "id =" cartitemids "/> <input type =" hidden "name =" total "id =" hiddentotal "/> <input type =" hidden "name =" Method "value =" co: coPorc "/coT.> </body> </html>Tips: Round Round.js di JS
// 5. Tampilkan total pada total elemen $ ("#total"). Teks (putaran (total, 2)); // Fungsi fungsi bundar () adalah untuk mempertahankan 2 bit dari total6. Fungsi Penghapusan Batch ---- Hapus
jsp
function batchDelete() { // 1. Get the checkboxes for all selected entries // 2. Create an array and add the values of all selected checkboxes to the array // 3. Specify the location as CartItemServlet, parameter method=batchDelete, parameter cartItemIds= toString() of the array var cartItemIdArray = new Array(); $ (": kotak centang [name = checkboxbtn] [checked = true]"). masing -masing (fungsi () {cartitemidarray.push ($ (this) .val ()); // Tambahkan nilai kotak centang ke array}); Lokasi = "/Barang/CartItemServlet? Metode = BatchDelete & CartItemids =" + CartItemidArray;}Hapus satu
if (kuantitas == 1) {if (konfirmasi ("Apakah Anda benar -benar ingin menghapus entri?")) {location = "/Barang/CartItemServlet? Metode = BatchDelete & CartItemids =" + id; }} kalau tidak {7. Jumlah Modifikasi ----- Modifikasi
jsp
// Minta server dan ubah nomor. fungsi sendUpdatequantity (id, kuantitas) {$ .Ajax ({async: false, cache: false, url: "/goods/cartitemservlet", data: {Metode: "updatequantity", cartitemid: id kuantitas: kuantitas}, type: "post", datatipe: "json", "function" (function}}, "post". "Kuantitas"). Val (quantity);servlet
Public String UpdateQuantity (httpservletRequest req, httpservletResponse resp) melempar servletException, ioException {string cartitemid = req.getParameter ("cartitemid"); int kuantitas = integer.parseint (req.getParameter ("kuantitas")); Cartitem cartitem = cartitemservice.updatequantity (cartitemid, kuantitas); // kembalikan objek JSON ke klien StringBuilder SB = New StringBuilder ("{"); sb.append ("/" kuantitas/""). append (":"). append (cartitem.getquantity ()); SB.Append (","); sb.append ("/" subtotal/""). append (":"). append (cartitem.getsubtotal ()); SB.Append ("}"); resp.getWriter (). Print (SB); return null;}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.