我想可能是你的逻辑问题
应该是当你点击添加按扭时
根据ID将这条对应的记录所映射的实体BEAN放入List中
Action处理的代码可写为
Collection list=request.getSession().getAttribute("list");
Student stu=logic.findByid(id);if(list==null)
{
  list=new Arraylist();
    list.add(stu);
  request.getSession.setAttribute("list",list);
}
else
{
  list.add(stu);
}
return mapping.findForward("xx");

解决方案 »

  1.   

    我现在改成这样了,我的数据库处理理是这样的,这个方法,我想返回一个arraylist,能保存住所有选的记录,我在这个类上面,加定义了两个
    static int a[]=new int[10];//用来存放每回查过的ID号
    static int temp=0;//用于记数组下标
        public ArrayList buy_list(String id){
    BusinessForm form=new BusinessForm();
        ArrayList buylist=new ArrayList();
        try {
            a[temp++]=Integer.parseInt(id);
            for(int i=0;i<temp;i++){
             System.out.println(a[i]);
         rs=st.executeQuery("select * from bussness where buid='"+a[i]+"'");

      while(rs.next()){
          form.setBuid(rs.getString("buid"));
          form.setBuname(rs.getString("buname"));
          form.setNewprice(rs.getString("newprice"));
          buylist.add(form);
    //    
                 }
            }
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }

    return buylist;
    }
    ////////////////////////////////////////////////////////////////////////////////////
       Action 中是这样的
       
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response) {
    BusinessForm businessForm = (BusinessForm) form;

        String id=businessForm.getBuid(); 
    DBManager db=new DBManager();

    ArrayList mylist=db.buy_list(id);
        request.getSession().setAttribute("buylist",mylist);
       System.out.println(request.getSession().getAttribute("buylist"));
     
        return mapping.findForward("buy");
    }
       
    ////////////////////////////////////////////////////////////////////////////////////
       显示页是这样的(只写了重要的循环输出部分) <logic:iterate id="list" name="buylist">
         <form name="focu">
         <tr><td><bean:write name="list" property="buid"/></td>
             <td><bean:write name="list" property="buname"/></td>
             <td><bean:write name="list" property="newprice"/></td>
             <td><input type="text" name="num" value="1"></td>
             <td><input type="button" value="修改数量" onclick="upda()"><input type="button" value="删除" onclick="dele()">
             </td>
          </tr>
          </form>
         </logic:iterate>  
      

  2.   

    Collection list=request.getSession().getAttribute("list");
    Student stu=logic.findByid(id);if(list==null)
    {
      list=new Arraylist();
        list.add(stu);
      request.getSession.setAttribute("list",list);
    }
    else
    {
      list.add(stu);
      request.getSession.setAttribute("list",list);}
    这样就可以解决了return mapping.findForward("xx");
      

  3.   

    你每次都要先从SESSION中去取你的list
    如果它为空,则实例化并存入session中
    否则则直接用,用完之后再放入session中
      

  4.   

    我的action中是取得首页传来的ID,然后,用数据库类按ID查询得到arraylist,然后将这个数组放到session中,
      

  5.   

    我只是大概看懂了一点意思。可以把list对应一个商品的不同次数,再加一个map,把多个list放到map中。