如何在jstl的每个循环中获取映射的下一次迭代的值?

时间:2015-02-23 06:25:16

标签: jstl

我的Controller中有一个LinkedHashMap,并按如下方式填充:

    Map<String,String> productCodeURLs  = new LinkedHashMap<String,String>();

    Iterator<ProductData> it= searchPageData.getResults().iterator();

    while(it.hasNext()) 
    {
        ProductData product=it.next();
        productCodeURLs.put(product.getCode(), product.getUrl());
    }

然后在我的JSTL中,我需要显示下一个/即将到来的迭代的值。读取下一个值的正确语法是什么?

    <c:forEach items="${productMapUrls}" var="item" varStatus="loop">
    <c:if test="${product.url eq item.value}">
    <c:url var="nextUrl" value="${productMapUrls[loop.index+1].value}"/>

    <a href="${nextUrl}" class="smt-tool"> <span class="icon icon-arrow-next-sm"></span> </a>
    </c:if>
    </c:forEach> 

但是我无法使用$ {productMapUrls [loop.index + 1] .value}在下一次迭代中获取地图的值。请帮忙。

0 个答案:

没有答案