//提交后转入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){}%>

解决方案 »

  1.   

    session中放一个map or set,每次操作map或者set集合就是了
      

  2.   

    if(list.isEmpty()==true){ 
    list.add(shitem); }else{ 
    list.addAll(list); 
    } ??
    你这当然list里永远只有一个元素了???
    你new 的list,if(list.isEmpty()==true这个条件当然成立了...你应该从session里获得list再往里边加元素
      

  3.   

    2楼的意思是,你每次添加商品,你都new了一个list,然后把当前商品添加进去了,然后你setAttribute的时候把这个list替换掉原来的list了,这样原来list里的信息都没有了,你应该先从session里把原来的list取出来,把它放在另一个变量里,然后add到新的list里再替换。
      

  4.   

    已经很详细了,就是你每次放的list里都是从新给的直,而每次给的一个直,当然只能取到一个了???还没明白吗?
      

  5.   

    ArrayList <Shop_items> list=new ArrayList <Shop_items>();  把这个改成下面就好了ArrayList <Shop_items> list = (ArrayList <Shop_items>) session.getAttribute("list"); 
    if(null == list)
       list=new ArrayList <Shop_items>();
      

  6.   

    这样不行,他第一次要new这个list,否则session里没有list,要么楼主,你在声明session的时候直接丢个空的list进去也行,那样就可以用这个代码了