jsp-JSP购物车功能不能修改数量

问题描述

JSP购物车功能不能修改数量
在servlet做了修改数量的几个验证,原本修改为正确的数量值都是没问题的,但现在不知道怎么回事,突然就不可以了,修改数量后,弹出是否确认修改的窗口,点击确认后,值还是之前的值,发现并没有把值提交给servlet,。后天要交,好急呀。。以下是代码:
第一块代码块是jsp的修改页面,数量修改后,提交到servlet

 <form action=""${pageContext.request.contextPath}/servlet/ManagerServlet?operation=addDetails "" method=""post"" class=""form-horizontal""> <div style=""padding: 10px 200px 10px;"">    <c:if test=""${!empty sessionScope.cart.items}"">        <table class=""table table-hover"" width=""1024"">            <thead>                <tr>                    <th>序号</th>                    <th>商品编码</th>                    <th>商品全称</th>                    <th>品牌</th>                    <th>计量单位</th>                    <th>数量</th>                    <th>单价</th>                    <th>总价</th>                    <th>操作</th>                </tr>            </thead>            <c:forEach items=""${sessionScope.cart.items}"" var=""me"" varStatus=""vs"">                <tr>                    <td>${vs.count}</td>                    <td>${me.value.product.code}</td>                    <td>${me.value.product.name}</td>                    <td>${me.value.product.brand}</td>                    <td>${me.value.product.unit}</td>                    <td>                    <input type=""text"" name=""num"" value=""${me.value.num}"" size=""1"" onchange=""changeNum(this'${me.key}'${me.value.num})""/></td>                    <td>${me.value.product.outprice}</td>                    <td>${me.value.price}</td>                    <td>                        <a href=""javascript:delOne('${me.key}')"">移除</a>                    </td>                </tr>            </c:forEach>        </table>        <p style=""text-align:right"">                    总数量:${sessionScope.cart.num}&nbsp;&nbsp;                    付款金额:${sessionScope.cart.price}&nbsp;&nbsp;                    <a href=""javascript:delAll()"">清空</a>&nbsp;&nbsp;                    <a href=""${pageContext.request.contextPath}/servlet/ManagerServlet?operation=showAllProducts"">继续采购</a>&nbsp;&nbsp;                    <a href=""${pageContext.request.contextPath}/servlet/ManagerServlet?operation=genOrders"">生成订单</a>        </p>    </c:if>    </div>    </form>        <script type=""text/javascript"">            function changeNum(inputObjproductIdoldNum){                var newnum = inputObj.value;//新的数量                var sure = window.confirm(""确定要把数量改为""+newnum+""吗?"");//返回值 :点确定就返回true                if(sure){                    //alert(""提交服务器去处理"");                    window.location.href=""${pageContext.request.contextPath}/servlet/ManagerServlet?operation=ChangeNumServlet&productId=""+productId+""&newnum=""+newnum;                }else{                    //改回原来的值                    inputObj.value=oldNum;                }            }            //删除一个购物项            function delOne(productId){                var sure = window.confirm(""确定要删除该项吗?"");                if(sure){                    window.location.href=""${pageContext.request.contextPath}/servlet/ManagerServlet?operation=DelOneCartItemServlet&productId=""+productId;                }            }            function delAll(){                var sure = window.confirm(""确定要清空所有采购项吗?"");                if(sure){                    window.location.href=""${pageContext.request.contextPath}/servlet/ManagerServlet?operation=DelAllCartItemServlet"";                }            }        </script>

servlet如下:

    //修改采购项的数量    private void ChangeNumServlet(HttpServletRequest request            HttpServletResponse response) throws ServletException IOException {        response.setContentType(""text/html;charset=UTF-8"");        PrintWriter out = response.getWriter();        try {            String productId = request.getParameter(""productId"");            String newnum = request.getParameter(""newnum"");            //找出购物车            Cart cart = (Cart)request.getSession().getAttribute(""cart"");            int num = Integer.parseInt(newnum);            System.out.println(""num==""+num);            System.out.println(""id==""+productId);            if(num<1){                request.setAttribute(""message""<script type='text/javascript'>alert('请输入正确的数量值');</script>"" );            }else{            //修改数量            s.changeCartItemNum(productIdcartnum);            System.out.println(""hhhhhh"");            }        } catch (NumberFormatException e) {            request.setAttribute(""message""<script type='text/javascript'>alert('请输入正确的数字');</script>"" );        }        //转发到显示购物车的页面        request.getRequestDispatcher(""/manager/showCart.jsp"").forward(request response);    }

解决方案

数量判断为什么不写在页面吗?
为什么改数量还要确认?如果有个加1减1按钮,我要10个从1点到10,你就弹9次确认吗?就去后台9次改9次sql?
s.changeCartItemNum(productIdcartnum);检查这里写的有没有问题

解决方案二:
看了下你的代码,你是在onChangeNum方法中,利用window.href完成修改操作的。
你调试下如果走人修改分支的话,最终有没有进入ChangeNumServlet的方法中呢?
如果正常执行完成了修改的servlet的话,那么你的数据有没有正确保存呢?这个s.changeCartItemNum(productIdcartnum);
检查它的代码是否正确。祝好!

时间: 2024-10-29 16:36:22

jsp-JSP购物车功能不能修改数量的相关文章

Android实现购物车功能_Android

最近看了一些淘宝购物车的demo,于是也写了一个. 效果图如下: 主要代码如下: actvity中的代码: public class ShoppingCartActivity extends BaseActivity { private List<Test> data; private ListView mListView; private ShoppingCartAdapter adapter; private RelativeLayout rlRefresh; private TextVi

数量改变-实现购物车功能中,商品数量增减和选择结算商品时的问题

问题描述 实现购物车功能中,商品数量增减和选择结算商品时的问题 如图,现在购物车的商品增减已实现,可是数量改变但界面上的显示仍是之前的数字,在适配器中写了点击事件,也在点击之后调用了notifyDataSetChanged();方法,仍不起作用: 选择商品,下面金额发生改变,可是再点击总金额应减少,可是我做的第一次点击增加,第二次的时候应该减少金额,当仍继续增加,不知道有人遇到过吗?试过多次,已经没思路了 解决方案 帖子被盖在下面了,你再多发一次,会有大神看见的! 解决方案二: 这个是js问题

类别-jsp 同步搜索功能 求源代码

问题描述 jsp 同步搜索功能 求源代码 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+"

用jsp做点赞功能

问题描述 用jsp做点赞功能,求代码 解决方案 解决方案二:代码没有,但是想想就应该很简单啊,点赞的时候,把request的hostip记录下来或者是用户ID,存到数据库,点一次赞后数据库累加一次,然后用户再次打开这个页面的时候,检索ip和ID,判断该客户端是否能再次点赞呢.解决方案三:后台方面就按楼上说的,没什么难度,前台的效果你肯定得结合Ajax做一下,点赞不能刷新页面就行了.解决方案四:引用1楼Ghost_520的回复: 代码没有,但是想想就应该很简单啊,点赞的时候,把request的ho

JSP实现登录功能之添加验证码_JSP编程

jsp登陆验证,网页登陆验证带验证码校验,登录功能之添加验证码 part_1:专门用于生成一个验证码图片的类:VerificationCode.Java package cn.mike.javase.test; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.i

Cookie的使用及保存中文并用Cookie实现购物车功能_JSP编程

Cookie是服务器存放在客户端的一些数据,比如密码,以及你曾经访问过的一些数据. 设置Cookie 复制代码 代码如下: //设置cookie Cookie cookie = new Cookie("TOM","111"); //设置有效期,默认秒为单位 cookie. setMaxAge(7*24*60*60); //添加cookie到客户端 response.addCookie(cookie); 获取Cookie 复制代码 代码如下: <% //获取co

数据库中的重复字段,如果存在,则不能继续插入,提示修改数量

问题描述 查看数据库中的字段是否已经存在,如果存在,则不能继续插入,提示修改数量例如:id:1袜子1双则不能再插入袜子,希望大哥们提示提示,谢谢了 解决方案 解决方案二:業務簡單,放在一起,就有一定的復雜.應該這功能也不實用.最好分兩步,存在,提示.讓用戶自行決定是否修改數量.解决方案三:ifexists(select*fromtable1whereid=1)return0elsereturn-1看返回值就可以了.解决方案四:这只是个例子,id不确定,就像购物车那种解决方案五:是在数据库遇到的麻

PHP单例模式实现商城购物车功能-PHP实例教程

  PHP单例模式实现商城购物车功能-PHP实例教程完成这个小功能必须会写需求 养成好的习惯 Php购物车的开发需求功能如下 1: 购物车放在session里 2: 单例模式来开发 功能: 增删改查 增一个商品 减少 PHP单例模式实现商城购物车功能-PHP实例教程完成这个小功能必须会写需求 养成好的习惯 Php购物车的开发需求功能如下:php100.com 1: 购物车放在session里 2: 单例模式来开发 功能: 增删改查 增一个商品 减少一个商品(改,数量) 删 去掉一个商品 清空购物

Android仿外卖购物车功能_Android

先看看效果图: 知识点分析 效果图来看不复杂内容并没多少,值得介绍一下的知识点也就下面几个吧 - 列表标题悬停 - 左右列表滑动时联动 - 添加商品时的抛物线动画 - 底部弹出购物车清单 - 数据的同步 另外就是实现效果的时候可能会遇到的几个坑... 布局很简单直接进入代码 1:列表标题悬停 现在做项目列表什么的基本抛弃了ListView改用RecyclerView,上篇博客中的标题悬停也是使用了一个RecyclerView的开源项目sticky-headers-recyclerview,不过写