有个集合Map<key,value>,其中key里面封装不同的商品bean对象(包括tradeId,tradeName,price),value是商品的数量(num)。
现要求在jsp页面中显示遍历出来每个bean的属性值(goodsId,goodsName,price,num)不知怎样用<c:foreach>来遍历,我的代码如下,但报错:
                           <td>${map.key.tradeName}<input type="hidden" value="${map.key.tradeId}"></td>
     <td>${map.key.price}</td>
     <td><input type= "text">${map.key.value}</td>

解决方案 »

  1.   

    - -!
    你应该key里面放tradeId
    value 放bean对象 把num也作为bean对象属性<c:forEach var="bean对象" items="${bean对象List}">
    <c:out value="${bean对象.属性}"/>这样...
      

  2.   

    一楼的items="${bean对象List}"
    页面上需要的是tradeId,tradeName,price,num全部信息,你那个是bean对象list,如果tradeId作为key,那么依照你那种方法只能遍历出tradeName,price,num字段,但我这里是用Map集合存的。tradeId怎么办呢?
      

  3.   


    <C:forEach var="goods" items="${yourmap}">
       ${goods.key.tradeId}
       ${goods.key.tradeName}
       ${goods.key.price}
    </c:forEach>
      

  4.   

    <c:forEach var="bean对象" items="${bean对象MAP}"> 
      

  5.   


    前提:
        Map map = new HashMap();
        map.put(key,javabean);
        Set keys = mmap.keySet();//取得所有的键
        Iterator it = keys.iterator();//取得键所有的对象
        Object[] obj = keys.toArray();
        int i = 0;
        while(it.hasNext()){
    javabean bean = (javabean)map.get((Integer)obj[i]);
            //这里可以得到你要的bean了,bean.price ,……
            it.next();
            i++;
        }
     
    兄弟,你在做购物车吧!
    我是这样的(那时候还不会jstl),你可以把它迭代 放入List中
    然后用forEach 循环输入出!
    ^_@
      

  6.   


        Map map = new HashMap();
        map.put(key,javabean);
        Set keys = mmap.keySet();//取得所有的键
        Iterator it = keys.iterator();//取得键所有的对象
        Object[] obj = keys.toArray();
        int i = 0;
        List list = new ArrayList();
        while(it.hasNext()){
        javabean bean = (javabean)map.get((Integer)obj[i]);
            //这里可以得到你要的bean了,bean.price ,……
             list.add(bean);
            it.next();
            i++;
        }
        request.setAttribute("shop",list);Jsp 代码:
     <c:forEach item="${shop}" var="key">
       <td>${key.tradeName} <input type="hidden" value="${key.tradeId}"> </td> 
        <td>${key.price} </td> 
        <td> <input type= "text">${key.value} </td>
     </c:forEach>兄弟,这样够哥们了吧!
    试试看……
    ^_@
      

  7.   

    感谢楼上的各位,我已经调试好了。以下代码是经过测试的:
                     <c:forEach var="map" items="${map}">
         <tr>
         <td>${map.key.tradeName}<input type="hidden" value="${map.key.tradeId}"></td>
         <td>${map.key.price}</td>
         <td><input type= "text" value="${map.value}"></td>
         <td>asda</td>
         <td><a href='#'>删除</a></td>
         <tr> 
         </c:forEach>