购物车清空方面的问题

wally1986 2008-05-01 01:38:57
请问,我在购物车里用session.removeAttribute("cart");清空购物车,但是再次添加商品时已经清空的商品都会显示在购物车中。这是为什么?谢谢!
...全文
302 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerremyly 2012-05-07
  • 打赏
  • 举报
回复
来学习!
cfeng12 2008-05-05
  • 打赏
  • 举报
回复

wally1986 2008-05-01
  • 打赏
  • 举报
回复
嗯,知道了,非常谢谢!
givenjoed 2008-05-01
  • 打赏
  • 举报
回复
<input name="num <%=i%>" size="7" type="text" class="txt_grey" value=" <%=goodsitem.number%>" onBlur="check(this.form)">

这个写到<%%>是不可取的, 也没有必要啊~
givenjoed 2008-05-01
  • 打赏
  • 举报
回复

如果上面第二次输出的shoppingcart是0,

显然上面的shoppingcart在session里面是清空了是不是,

那就要看你的页面是怎么响应(重定向)的了,让你的页面再从session中取得shoppingcart,

让它重新遍历一下,想想这种情况下的shoppingcart怎么可能还有对象呢,

肯定没有的,也就是空的了,祝你成功
wally1986 2008-05-01
  • 打赏
  • 举报
回复
还有一个问题不懂
<input name="num<%=i%>" size="7" type="text" class="txt_grey" value="<%=goodsitem.number%>" onBlur="check(this.form)">
这种语句可以写到<% %>这里面吗,可以写的话要怎么写?谢谢了
wally1986 2008-05-01
  • 打赏
  • 举报
回复
这位大哥,谢谢你这么热心的帮忙。
这个方法可以用,但是已清空的还是显示。。
givenjoed 2008-05-01
  • 打赏
  • 举报
回复

你用的应该是java.util.Vector是吧

if(action.equals("delall"))

{

Vector shoppingcart = (Vector)session.getAttribute("shoppingcart");
System.out.println(">>>>>>>第一次输出>>>>>>>>cart.size = " + shoppingcart.size());
session.setAttribute("shoppingcart",null);

shoppingcart = new Vector();
System.out.println(">>>>>>>>第二次输出>>>>>>>cart.size = " + shoppingcart.size());
session.setAttribute("shoppingcart",shoppingcart);

}

请看看后台的信息,如果你购买了再清空,那么,第一次输出的应该是你购买的数量,第二次输出的应该是0了
wally1986 2008-05-01
  • 打赏
  • 举报
回复
谢谢,那我的购物车信息放在 Vector buyList=(Vector)session.getAttribute("shoppingcart");这里
如果照你上面做的话,这些语句应该怎么写,本人比较笨,上面的cart把我搞晕了。
谢谢你的帮忙!!
givenjoed 2008-05-01
  • 打赏
  • 举报
回复

cart.size() 这里的cart是没有.size() 方法的,只是演示
givenjoed 2008-05-01
  • 打赏
  • 举报
回复


if(action.equals("delall"))

{

Cart cart = (Cart)session.getAttribute("cart");
System.out.println(">>>>>>>1>>>>>>>>cart.size = " + cart.size());
session.setAttribute("cart",null);

cart = new Cart();
System.out.println(">>>>>>>>2>>>>>>>cart.size = " + cart.size());
session.setAttribute("cart",cart);

}

Cart 是你所对应的购物车的类

这样的cart应该是0了
wally1986 2008-05-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 givenjoed 的回复:]


从session中先拿到cart,

if(action.equals("delall"))
{
Cart cart = (Cart)session.getAttribute("cart");
System.out.println(">>>>>>>>>>>>>>>cart.size = " + cart.size);

session.setAttribute("cart",null);

}

[/Quote]
这样不行啊。
givenjoed 2008-05-01
  • 打赏
  • 举报
回复


从session中先拿到cart,

if(action.equals("delall"))
{
Cart cart = (Cart)session.getAttribute("cart");
System.out.println(">>>>>>>>>>>>>>>cart.size = " + cart.size);

session.setAttribute("cart",null);

}
wally1986 2008-05-01
  • 打赏
  • 举报
回复
if(action.equals("delall"))
{

for (int i=0;i<cart.size();i++)//第一种
{
cart.removeElementAt(removeNo);

}
session.setAttribute("cart",null);//第二种
session.removeAttribute("cart");//第三种
}
<A href="list.jsp?action=delall">清空</a> //按钮
就这些
givenjoed 2008-05-01
  • 打赏
  • 举报
回复
把你的相关清空的方法贴出来看看啊~~
wally1986 2008-05-01
  • 打赏
  • 举报
回复
谢谢,不过这种方法我也试了,还是一样的。。。
不知道为什么还有用for语句循环也是会出现原来的商品。
givenjoed 2008-05-01
  • 打赏
  • 举报
回复
可以试试下面这个方法,

早前我也是用你这种方法,遇到同样的情况,呵呵,不过解决了,方法如下

session.setAttribute("cart",null);

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧