购物网站是如何一个个放入SESSION,又是如何一个个取出
//提交后转入SERVLET
String shangp=request.getParameter("shangp");
String price=request.getParameter("price");
ArrayList <Shop_items> list=new ArrayList <Shop_items>();
Shop_items shitem=new Shop_items();
shitem.setShangp(shangp);
shitem.setPrice(price);
if(list.isEmpty()==true){
list.add(shitem);
}else{
list.addAll(list);
}
if(list==null||list.size() <=0){
response.sendRedirect("../fun/image_info.jsp");
}else{
HttpSession session=request.getSession();
session.setAttribute("list", list);
response.sendRedirect("../fun/shopping.jsp");
}
//JSP取出,取出来只有一个,是不是放入SESSION的问题,请高手指点下
<%
try{
ArrayList <Shop_items> list2=new ArrayList <Shop_items>();
list2=(ArrayList)session.getAttribute("list");
if(list2!=null){
for(int i=0;i <list2.size();i++){
%>
<TR>
<td align="center"> <%=list2.get(i).getShangp()%> </td> <td > <%=list2.get(i).getPrice()%> </td>
</TR>
<%} }}catch(Exception e){}%>
------解决方案--------------------if(list.isEmpty()==true){
list.add(shitem);
}else{
list.addAll(list);
}
??
你这当然list里永远只有一个元素了???
你new 的list,if(list.isEmpty()==true这个条件当然成立了...你应该从session里获得list再往里边加元素
------解决方案--------------------2楼的意思是,你每次添加商品,你都new了一个list,然后把当前商品添加进去了,然后你setAttribute的时候把这个list替换掉原来的list了,这样原来list里的信息都没有了,你应该先从session里把原来的list取出来,把它放在另一个变量里,然后add到新的list里再替换。
------解决方案--------------------ArrayList <Shop_items> list=new ArrayList <Shop_items>(); 把这个改成下面就好了
Java code
ArrayList <Shop_items> list = (ArrayList <Shop_items>) session.getAttribute("list");
if(null == list)
list=new ArrayList <Shop_items>();
------解决方案--------------------