request中有个“admin.dealers”属性,是个元素是Map类型的List,其傎如下所示:
[{dealerid=1, dealername=商店A}, {dealerid=2, dealername=商店B}, {dealerid=3, dealername=商店C}, {dealerid=4, dealername=商店D}, {dealerid=5, dealername=商店E},...]
在JSP中如何用JSTL的c:forEach遍历所有的dealerid与dealername?谢谢!

解决方案 »

  1.   

    <c:forEach var="dealer" item="${admin.dealers}">
      ${dealer.key}:${dealer.value}
    </c:forEach>遍历的对象实际上是 Map.Entry 对象,
    Map.Entry 有getKey()与getValue()方法
      

  2.   

    用list也可以,因为list是有序的
      

  3.   

    报 Attribute item invalid for tag forEach according to TLD 错!
    请指教
      

  4.   

    <c:forEach var="dealer" items="${admin.dealers}"> 
      ${dealer.key}:${dealer.value} 
    </c:forEach> 
    对不起,临时手写的
      

  5.   


    谢谢你,不过还是报错:
    java.lang.NoSuchFieldError: deferredExpression
    org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178)
      

  6.   

    看看这个吧
    <c:forEach var="dealer" items="${admin.dealers}"> 
      <c:out value="${dealer.dealerid}"/>
      <c:out value="${dealer.dealername}"/>
    </c:forEach> 
      

  7.   

    一样的“java.lang.NoSuchFieldError: deferredExpression”
      

  8.   

    .....应该是个双重循环<c:forEach var="dealer" items="${admin.dealers}"> 
    <c:forEach items="${dealer}" var="entry">
    ${entry.key },${entry.value }
    </c:forEach>
    </c:forEach> 
      

  9.   

    <c:forEach var="dealer" items="${admin.dealers}"> 
      <c:out value="${dealer[dealerid]}"/> 
      <c:out value="${dealer[dealername]}"/> 
    </c:forEach> 
    或者
    <c:forEach var="dealer" items="${admin.dealers}"> 
    <c:forEach items="${dealer}" var="entry"> 
    ${entry.key },${entry.value } 
    </c:forEach> 
    </c:forEach>
    都是可以的,可能你别的地方有问题
      

  10.   

    这里不要用“.”
    request.setAttribute("adminDealers",list);<c:forEach var="dealer" items="${adminDealers}"> 
      <c:out value="${dealer[dealerid]}"/> 
      <c:out value="${dealer[dealername]}"/> 
    </c:forEach> 
      

  11.   

    <c:forEach var="dealer" items="${adminDealers}">  
      ${dealer.get('dealerid')}
      ${dealer.get('dealername')} 
    </c:forEach>