例如用户去查询自己的订单得到一个orderlist,
每一个订单(order)对应一个商品的goodlist,
如果用户(user_id)去查询已买到的商品,在jsp里如何用servlet返回的orderlist和goodlist查询。
如同淘宝先forEach所有订单,订单里forEach里面的所有商品jspservletforEach

解决方案 »

  1.   

    是显示吗
    <c:forEach items="${orderlist}" varStatus="i" var="list">                    
                            <c:forEach items="${goodlist}" var="obj">
                                
                                    <c:out value="${obj}"></c:out>
                                
                            </c:forEach>
                       
                    </c:forEach>
      

  2.   

    顶楼上的,就是这样写的,我一般都不用foreach的 
      

  3.   

    我用servlet得到orderlist,怎么会有第一个订单的物品goodlist.good_name被第二个订单的物品覆盖啊
      

  4.   

    <!-- 根据用户名de到订单 --> <c:forEach items="${requestScope.orderlist }" var="orderlist"
    varStatus="ordl">
    <tbody>
    <tr height="5"></tr>
    <tr>
    <td class="order-bh"><input type="checkbox" class="selector"
    id="${orderlist.order_id }" name="biz" value="check"> 订单编号: <span
    class="order-num">${orderlist.order_id }</span> <span
    class="deal-time"> 成交时间:${orderlist.order_date }</span></td>
    </tr>
    <tr height="5"></tr>
    <!-- 得到订单内的所有物品 -->
    <c:forEach items="${requestScope.golist }" var="golist"
    varStatus="goodl">


    <tr id="${golist.go_id }" class="order-order" bordercolor="#ccc">
    <td class="baobei-name"><a target="#" title="查看宝贝详情"
    href="#"> <img class="img" alt="查看宝贝详情"
    src="img/order/ns.jpg" />
    </a> <a target="_blank" href="#">${golist.good_name }</a> <br>
    <div class="desc">
    <span>重量:${golist.good_weight }</span>
    </div></td>
    <td class="baobei-price" title="price">${golist.price_et
    }</td>
    <td class="baobei-quantity" title="num">${golist.go_num }</td> <td class="baobei-after-service" rowspan="1"><a
    href="inform.html" target="_blank">违规举报</a></td> <td class="baobei-amount" rowspan="1"><strong>${orderlist.sum
    }</strong>
    <p class="post-type">(含快递:0.00 )</p> <div class="card">
    <img src="img/order/xcard.png" alt="信用卡" title="支持信用卡支付" />
    </div></td>
    <td class="baobei-trade-status" rowspan="1"><c:choose>
    <c:when test="${ orderlist.ispaid == 0 }">
    <a href="#">未付款</a>
    </c:when>
    <c:otherwise>
    <a href="#">已付款</a>
    <br>
    <a href="#">查看物流</a>
    </c:otherwise>
    </c:choose><br> <span> <a href="#" target="_blank"
    class="detail-link">订单详情</a>
    </span></td>
    <td class="baobei-operate" rowspan="1">
    <c:choose>
    <c:when test="${ orderlist.ispaid == 0 }">
    <div class="skin-orange">
    <a class="pay-button" href="#" target="_blank" title="付款到支付宝">付款</a>
    </div> <br> <a title="请与卖家协商取消订单,每天不得取消超过5笔订单。" href="#">取消订单</a>
    </c:when>
    <c:otherwise>
    <div class="skin-blue">

    </div> <br> <a title="" href="#">添加评论</a>
    </c:otherwise>
    </c:choose>
    </td>
    <td class="baobei-delete" rowspan="1"><a
    class="remove_order" title="删除订单" href="#">删除</a></td> </tr>
    </c:forEach>
    </tbody>
    </c:forEach>
      

  5.   

    由4楼可以看出来order_id为2008031502的订单有2个good_id,但显示的时候order_id为2008031503的物品(3个)会覆盖第一个订单的2个物品显示为3个
      

  6.   

    不用foreach用啥???struts的S标签???
      

  7.   

    struts的<s:iterator>标签也可以
      

  8.   

    <!-- 得到订单内的所有物品 -->
    <c:forEach items="${requestScope.golist }" var="golist"
    varStatus="goodl">
    你写的这个不是遍历当前订单的物品
      

  9.   

    forEach循环嵌套的不是这样吗?求大神指教
      

  10.   


    orderlist是所有订单,goodlist是所有商品。
    循环一个订单,循环所有商品(包含第二个订单中的),循环第二个订单,循环所有商品(包含第一个订单中的)。
    要注意判断内循环中的商品是否是外循环订单中的。
      

  11.   

      orderlist是所有订单,每个订单对象包括(id,物品集合goodlist,...)然后就这样遍历
    <c:forEach items="${orderlist}" varStatus="i" var="order">                    
                            <c:forEach items="${order.goodlist}" var="obj">
                                
                                   ...
                                
                            </c:forEach>                   
                    </c:forEach> 
      

  12.   

    orderlist是一个list属性的可以对list用list.list吗,还是用orderlist.order_id.goodlist(在里要用3个DAO来查询啊)
      

  13.   

    List<Order> orderlist =orderdao.findAllOrderById(user_id1);//根据用户ID查询订单
    req.setAttribute("orderlist", orderlist);
    req.setAttribute("ordersize", orderlist.size());
    V_GoviewDAO vgodao=new V_GoviewDAO();
    //根据订单ID来查订单内容(物品及数量)
    Iterator<Order> it=orderlist.iterator();
    while(it.hasNext()){
    Order order=new Order();
    order=it.next();
    int order_id=order.getOrder_id();

    List<V_Goview> golist=vgodao.findGoodorderByOrderId(order_id);
    /*List<GoodOrder> goodlist =godao.findAllGoodByOrder(order_id);*///根据订单ID来查订单内容(物品及数量)
    req.setAttribute("golist", golist);//这儿如何能让返回值在接受的时候能得到不同的golist
    }
      

  14.   

    List<Order> orderlist =orderdao.findAllOrderById(user_id1);//根据用户ID查询订单
    req.setAttribute("orderlist", orderlist);
    req.setAttribute("ordersize", orderlist.size());
    V_GoviewDAO vgodao=new V_GoviewDAO();
    //根据订单ID来查订单内容(物品及数量)
    Iterator<Order> it=orderlist.iterator();
    while(it.hasNext()){
    Order order=new Order();
    order=it.next();
    int order_id=order.getOrder_id();List<V_Goview> golist=vgodao.findGoodorderByOrderId(order_id);
    /*List<GoodOrder> goodlist =godao.findAllGoodByOrder(order_id);*///根据订单ID来查订单内容(物品及数量)
    你的Order对象里没有List<V_Goview> golist属性?如果有的话,下面的改成这样:order.setGoList(golist);
    req.setAttribute("golist", golist);//你这样的话,req中的golist是最后set的物品,之前set的被覆盖
    }
      

  15.   

    goodlist是servlet传过来的要requestScope.goodlist啊,怎么还能order.goodlist
      

  16.   

    goodlist放在orderlist 的order里面,orderlist 放在request里面
      

  17.   

    我用的order表单里面没放goodlist
    现在只是[<c:forEach items="${requestScope.orderlist }" var="orderlist"
    varStatus="ordl">
    <c:forEach items="${requestScope.golist }" var="golist"
    varStatus="goodl">
    。。
    </c:forEach>
    </c:forEach>

    双重forEach还都是Servlet返回的,怎么样接收的啊,下划线那里怎么写啊
      

  18.   

    order表里面可以没有相应字段,但order对象里面必须放goodlist,否则不好处理
      

  19.   

    放置了如何在servlet里面写呢,现在的代码
    Order2 olist2=new Order2();
    List<V_Goview> golist=new Vector<>();
    while(it.hasNext()){
    V_Goview vorder=new V_Goview();
    vorder=it.next();
    int order_id=vorder.getOrder_id();

    try
    {
    golist = vgodao.findGoodorderByOrderId(order_id);//根据订单ID来查订单内容(物品及数量)
    /*list.add(golist);*/
    olist2.setgolist(golist);

    }
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    }
    req.setAttribute("olist2", olist2);
    golist是Order2里面的一个属性?
    返回olist2,jsp里可以olist2.golist?我这样写好像报错的
      

  20.   


    参照如下:
    List<Order> orderlist =orderdao.findAllOrderById(user_id1);//根据用户ID查询订单
    //Order对象里 有一个List<V_Goview> golist属性及其set/get方法
    Iterator<Order> it=orderlist.iterator();
    while(it.hasNext()){
    Order order=it.next();
    int order_id=order.getOrder_id();
    try
    {
    List<V_Goview> golist = vgodao.findGoodorderByOrderId(order_id);//根据订单ID来查订单内容(物品及数量)order.setGolist(golist);}
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    }
    req.setAttribute("orderlist", orderlist);jsp上面
    <c:forEach items="${orderlist}" varStatus="i" var="order">                    
                            <c:forEach items="${order.golist}" var="obj">
                                
                                   ...
                                
                            </c:forEach>                   
                    </c:forEach> 
      

  21.   

    Order2是我建的一张虚拟表包含V_Goview视图,Order表是V_Goview视图的一部分,不能把
    goodlist当做Order的属性啊。
      

  22.   

    晕死,这跟表没关系,不用改表,只需在Order对象里加一个List属性,显示用而已
      

  23.   

    Iterator<Order> it=orderlist.iterator();
    Order order=new Order();
    List<V_Goview> golist=new Vector<>();
    while(it.hasNext()){
    Order ord=it.next();
    怎么报这个java.util.ConcurrentModificationException异常呢
      

  24.   

    现在我已经按您说的改了但是
    Iterator<Order> it=orderlist.iterator();
    Order order=new Order();
    List<V_Goview> golist=new Vector<>();
    while(it.hasNext()){
    Order ord=it.next();
    怎么报这个java.util.ConcurrentModificationException异常呢
      

  25.   

    那就别用Iterator,直接遍历orderlist 
    List<Order> orderlist =orderdao.findAllOrderById(user_id1);//根据用户ID查询订单
    //Order对象里 有一个List<V_Goview> golist属性及其set/get方法
    for(Order order:orderlist ){
    int order_id=order.getOrder_id();
    try
    {
    List<V_Goview> golist = vgodao.findGoodorderByOrderId(order_id);//根据订单ID来查订单内容(物品及数量)order.setGolist(golist);}
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    }
    req.setAttribute("orderlist", orderlist);
      

  26.   

    这儿req的是orderlist,但查出golist的是放在order里面的啊
    在页面执行orderlist.golist能有order得到的golist啊?