Este artigo compartilha o código específico do módulo de carrinho de compras para sua referência. O conteúdo específico é o seguinte
Não é uma sessão ou um biscoito, mas uma mesa
> Adicione uma entrada de compras
> Modificar o número de entradas de compras
> Exclua uma entrada
> Exclusão de entradas em lote
> Meu carrinho de compras, isto é, itens de consulta pelo usuário
> Consulte as entradas verificadas
1. Tabela de dados
A cópia do código é a seguinte: Inserir em `t_cartiTem` (` cartItemid`, `quantidade`,` bid`, `uid`,` orderby`) valores ('B8939FC55131469CAB11E3924D40185B', 1, 'CE01F15D435A4C51B0AD8202A318DCA7', 'XXX', 11);
2.CartItem
classe pública CartItem {private String CartItemid; // Chave primária Private Int Quantidade; // Quantidade Livro privado Livro; // livro correspondente à entrada Usuário privado do usuário; // Usuário ao qual o usuário // Adicione o método subtotal public duplo getSubtotal () {/** não haverá erros quando o BigDecimal* requer o tipo string () {/** não será usado* BigDecimal* requer que o tipo string () {/** não haverá* BigDecimal* requer que o tipo string () {/** seja usado para serem usados* BigDecimal* requer o tipo string () {/*************** BigDecimal (book.getCurrprice () + ""); Bigdecimal b2 = novo bigdecimal (quantidade + ""); Bigdecimal b3 = b1.multiply (b2); return b3.doubleValue (); } public string getCartItemid () {return CartItemid; } public void setCartItemid (String CartItemid) {this.cartItemid = cartiMID; } public int getQuantity () {return Quantity; } public void setQuantity (int Quantity) {this.quantity = Quantity; } public book getBook () {return book; } public void Setbook (livro de livros) {this.book = book; } usuário público getUser () {return user; } public void SetUser (usuário do usuário) {this.User = user; }}Dicas: não haverá erros no arredondamento do BigDecimal em Java
// Adicione o método subtotal public duplo getSubtotal () {/** Não haverá erro ao usar o BigDecimal* requer que o construtor de tipo de string seja usado*/ bigdecimal b1 = novo bigdecimal (book.getCurrprice () + ""); Bigdecimal b2 = novo bigdecimal (quantidade + ""); Bigdecimal b3 = b1.multiply (b2); retornar b3.doubleValue ();}3. Verifique a entrada do carrinho de compras através dos usuários
Cada entrada na minha entrada de carrinho de compras precisa exibir o preço de tabela do livro de imagens, o que significa que várias tabelas são necessárias
Lista pública <TritEm> findByUser (String uid) lança SQLEXCECCIONE {String sql = "Selecione * de T_CartItem C, T_Book B Onde c.bid = b.bid e uid =? Ordem por c.orderby"; List <map <string, object >> mapList = qr.Query (SQL, new MapglistHandler (), UID); Retornar tocartItemList (MapList);}4. Adicione entradas do carrinho de compras ----- Adicione
JSP
<div> <form id = "form1" action = "<c: url value = '/cartItemServlet' //>" method = "post"> <input type = "hidden" name = "métod" value = "add"/> <input type = "hidden name" "bid" = "$ {book.bid}"/> i want the value = "1"/> </morm> <a id = "btn" href = "javascript: $ ('#form1'). submmit ();"> </a> </div>CartItemServlet
public string add (httpServletRequest req, httpServletResponse resp) lança servletexception, ioexception { / * * 1. CartItem CartItem = Commonutils.Tobean (mapa, cartem.class); Livro do livro = CommonUtils.Tobean (mapa, book.class); Usuário do usuário = (usuário) req.getSession (). GetAttribute ("sessionUser"); CartIm.setBook (livro); cartIm.setUser (usuário); CartItemService.add (CartItem); retornar mycart (req, resp);}CartItemService
public void add (CartItem CartItem) {tente { /** 1. Use o UID e lance para consultar se essa entrada existe no banco de dados* / cartIm _cartItem = CartImdao.findbyuidandbid (CartItem.getUser (). getUid (), cartitem.get.); if (_cartItem == null) {// Se não houver tal entrada, adicione a entrada cartiM.setCartItemid (Commonutils.uuid ()); CartItemdao.addcartItem (CartItem); } else {// Se houve essa entrada, modifique o número // use a quantidade original e o número de novas entradas a serem usadas como a nova quantidade int quantity = cartIm.getquantity () + _cartItem.getQuantity (); // modifica a quantidade dessa antiga entrada cartiMDAO.UpDateQuantity (_cartItem.getcartItemid (), quantidade); }} Catch (Exceção e) {lança nova RunTimeException (e); }}CartImdao
public void addCartItem (CartItem CartItem) lança sqlexception {string sql = "inserir em t_cartiTem (cartItemid, quantidade, bid, uid)" + "valores (?,?,?,?)"; Objeto [] params = {cartItem.getCartItemid (), cartItem.getquantity (), cartiM.getbid (), cartiM.getUser (). GetUid ()}; Qr.Update (SQL, Params);}5. Página do módulo de carrinho de compras JavaScript ---- Verifique
Calcule o total
Adicione o evento de clique para selecionar tudo
Adicione o evento de clique na caixa de seleção para todas as entradas
Adicione o evento de clique no sinal de menos
Adicione o evento de clique no sinal de mais
Excluir lote
list.jsp
<%@ Page Language = "java" import = "java.util. uri = "http://java.sun.com/jsp/jstl/functions"%> <! Doctype html public "-// w3c // dtd html 4.01 transição // pt"> <html> <title> cartlist.jsp </title " <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expire" content = "0"> <meta http-equiv = "palavras-chave <words" content = "Keyword1, Keyword2, palavra-chave"> <meta http-mequiv "" content = "content = keyword1, palavra-chave 2, isto <meta http-mequiv" "content =" word1, palavra-chave "isto é <equiv <meta http-mequiv" " type = "text/css" href = "styles.css">-> <script src = "<c: url value = '/jQuery/jQuery-1.5.1.js'/>"> </script> <script src = "<c: ur value = '/js/round.js'/>"> href = "<c: url value = '/jsps/css/cart/list.css' ///>"> <script type = "text/javascript"> $ (function () {showTotal () // calcule o total/* adicionar evento para selecionar todos*/$ ("#selecionar"). CLIQUE (funcionar (funcionar): $ ("#selectall"). Att ("verificado"); /* 2. Sincronize as caixas de seleção de todas as entradas com o status todos selecionados*/ setItemCheckBox (BOOL); /* 3. Sincronize o botão de check -out com o selecionado all*/ setjieSuan (bool); /* 4. Recalcule o total*/ ShowTotal (); }); /* Adicione o evento de clique nas caixas de seleção de todas as entradas*/$ (": caixa de seleção [name = checkboxbtn]"). Clique (function () {var all = $ (": caixa de seleção [name = checkbtn]"). Length; // o número de todas as entradas var. {// all $ ("#selectall"). Att ("verificado", true); // Verifique a caixa de seleção Todo caixa de seleção setjieSuan (true); // Torne o botão de checkout válido} else if (select == 0) {// Ninguém selecionado $ ("#selectAll"). $ ("#selectAll"). Att ("verificado", false); // Cancelar todos os setjiesuan (false); // Cancelar o checkout} else {$ ("#selectall"). att ("verificado", false); // cancelar todos os setjiesuan (true); // liquidação seja válida} ShowTotal (); /* Adicione o evento de clique no sinal de menos*/ $ (". Quantidade, mas excluindo-o. // Adicione o evento de clique em Evento $ (". e modificar a quantidade. function sendUpdateQuantity(id, quantity) { $.ajax({ async:false, cache:false, url:"/goods/CartItemServlet", data:{method:"updateQuantity",cartItemId:id,quantity:quantity}, type:"POST", dataType:"json", success:function(result) { //1. Modify quantity $("#" + id + "Quantidade"). /* 1. Obtenha todas as caixas de seleção de entradas verificadas! TRAVERSAL DE LOOP */$ (": Caixa de seleção [Nome = CheckBtotn] [checked = true]"). Cada (function () {// 2. Obtenha o valor da caixa de seleção, ou seja, o prefixo de outros elementos var id = $ (this) .Val () // 3. Então, encontre o elemento subtotal através do prefix e obtenha // 4. // 5. Exiba o total no elemento total $ ("#total"). Texto (redondo (total, 2)); // A função da função redond () é reter 2 bits totais}/ * * Defina o botão de verificação para todas as entradas de uniforme */função setItemCheckBox (bool) {$ (": caixa de seleção [name = checkboxbtn]"). AttJiesuan (bico); $ ("#jiesuan"). removeclass ("kill"). addclass ("jiesuan"); $ ("#Jiesuan"). Unbind ("Clique"); // Desfazer todos os eventos de clique do elemento atual} else {$ ("#Jiesuan"). RemoveClass ("Jiesuan"). Addclass ("Kill"); $ ("#Jiesuan"). Clique (function () {return false;}); }}/** Batch Excluir*/função BatchDelete () {// 1. Obtenha as caixas de seleção para todas as entradas selecionadas // 2. Crie uma matriz e adicione os valores de todas as caixas de seleção selecionadas ao parâmetro // 3. Variedade(); $ (": Caixa de seleção [Nome = CheckBtn] [checked = true]"). cada (function () {CartImidarray.push ($ (this) .val ()); // Adicione o valor da caixa de seleção à matriz}); location = "/goods/CartItemServlet?method=batchDelete&cartItemIdArray;}/* * Checkout*/function jiesuan() { // 1. Get the ids of all selected entries and put them in the array var cartItemIdArray = new Array(); $(":checkbox[name=checkboxBtn][checked=true]").each(function() { CartImidary.push ($ (this) .val ()); // Adicione o valor da caixa de seleção à matriz}); $ ("#hiddentotal"). Val ($ ("#total"). Text ()); <tr> <td align = "Right"> <img align = "top" src = "<c: url value = '/imagens/icon_empty.png' ////"/> </td> <td> </c = c: center </c: </c: " CellPacing = "0"> <tr align = "Center" bgcolor = "#efeae5"> <td align = "left"> <input type = "caixa de seleção" id = "selectAll" checked = "checkd"/> <bel para = "Selectall"> Selecione todos </etc. <Td> Quantidade </td> <td> subtotal </td> <td> operação </td> </td> </td> </tr> <c: foreach itens = "$ {cartemList}" var = "cartitem"> <troun = "center"> <TdnIn = ">"> type = "caixa de seleção" name = "checkboxbtn" checked = "checked"/> </td> <td align = "left"> <a href = "<c: url value = '/jsps/book/desced.jsp'/>"> <img align = "top" src = "<c: url) </td> <td align = "left"> <a href = "<c: url value = '/jsps/book/desc.jsp'/>"> <pan> $ {cartItem.book.bname} </span> </a> </td> <td> <pan> $ {caritem..Crice> id = "$ {cartItem.cartItemid} jian"> </a> <input readOnly = "readonly" id = "$ {cartIm.cartItemid} quantidade" type = "text"/"$ {cartiTem.quantity}"/> <a id = " <pan> ¥ <span id = "$ {cartItem.cartiTemid} subtotal"> $ {cartIm.subtotal} </span> </span> </td> <td> <a href = "<c: url value = '/cartemServlet? } '/> "> Delete </a> </td> </td> </tr> </c: foreach> <tr> <td colspan =" 4 "> <a href =" javascript: Batchdlete (); id = "Total"> </span> </span> </td> </tr> <tr> <td colspan = "7" align = "direita"> <a href = "javascript: jiesuan (); valor </body> </html>Dicas: redond.js em js
// 5. Exiba o total no elemento total $ ("#total"). Texto (redondo (total, 2)); // A função da função Round () é reter 2 bits de total6. Função de exclusão em lote ---- Excluir
JSP
função BatchDelete () {// 1. Obtenha as caixas de seleção para todas as entradas selecionadas // 2. Crie uma matriz e adicione os valores de todas as caixas de seleção selecionadas à matriz // 3. Especifique o local como CartItemServlet, Método do parâmetro = BatchDelete, Parameter CartImids = ToString () do Array Cartem $ (": Caixa de seleção [Nome = CheckBtn] [checked = true]"). cada (function () {CartImidarray.push ($ (this) .val ()); // Adicione o valor da caixa de seleção à matriz}); Location = "/bens/CartItemServlet? Método = BatchDelete & CartItemids =" + CartImidarray;}Exclua um
if (quantidade == 1) {if (confirm ("você realmente deseja excluir a entrada?")) {location = "/bens/cartItemServlet? Método = BatchDelete & cartImids =" + id; }} outro {7. Número de modificações ----- Modificar
JSP
// Solicite o servidor e modifique o número. function sendUpdateQuantity(id, quantity) { $.ajax({ async:false, cache:false, url:"/goods/CartItemServlet", data:{method:"updateQuantity",cartItemId:id,quantity:quantity}, type:"POST", dataType:"json", success:function(result) { //1. Modify quantity $("#" + id + "Quantidade").servlet
public string updateQuantity (httpServletRequest req, httpServletResponse resp) lança servletexception, ioexception {string cartItemid = req.getParameter ("cartImid"); int Quantity = Integer.parseint (req.getParameter ("Quantity")); CartItem CartItem = CartItemService.UpDateQuantity (CartItemid, Quantidade); // retorna um objeto JSON para o cliente StringBuilder SB = new StringBuilder ("{"); sb.append ("/" Quantity/""). Append (":"). Append (CartIm.getQuantity ()); sb.append (","); sb.append ("/" subtotal/""). Append (":"). Append (CartIm.getSubtotal ()); sb.append ("}"); resp.getWriter (). print (sb); retornar nulo;}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.