日期:2014-05-19  浏览次数:20570 次

struts2 购物车问题
在UserAction中定义了一个List<User> list = new ArrayList<User>()集合,就是当点击一下页面发送一个请求并携带参数id到传UserAction中,然后根据id在数据库里面查找到相应的user对象,再通list.add(user)将user对象添加以集合里面。问题是:因为struts2每次请求action都会生成一个新的实例,所以当页面发出请求的时候,list对象重新实例化了, 请问我想在多次请求中,多次向那个list加东西,用session如何具体实现。




------解决方案--------------------
再通list.add(user)将user对象添加以集合里面 

之后,
把list放入session
HttpSession session=request.getSession();
session.setAttribute("userlist",list);

下次向list添加user,
List<User> list1=session.getAttribute("userlist");

list1.add(user);
取出来 添加了 再放回去
session.setAttribute("userlist",list1);

用session是这样解决的


------解决方案--------------------
请求action 获取session的list
if(list==null)//第一次请求
创建list
else 获取list
将页面传递来的id在list的查看如果有则该对象数量加一。
如果没得就在数据库中查找该对象,后并添加到list中。
完成之后再保存到session中。
这样只有还在会话session还在无论是哪一次请求都能在同一个list的操作。