【问题标题】:JSTL: How to get previous and next iteration elements of Map?JSTL:如何获取 Map 的上一个和下一个迭代元素?
【发布时间】:2014-11-06 23:02:14
【问题描述】:

我的 servlet 中有一个 TreeMap,并按如下方式填充它:

            Map<Integer, ClockTrans> ctsDictionary = new TreeMap<Integer, ClockTrans>();
            ClockTrans cts = null;

            for (int i = 0; i < ctsArr.length; i++) {
                cts = ctsArr[i];
                ctsDictionary.put(i, cts);
            }

然后在我的 JSP 中,我需要显示上一个、当前和下一个/即将到来的迭代值的值。为简单起见,在下面的代码中,我删除了对第一行和最后一行的检查,以避免索引越界错误。但我主要关心的是我使用“status.index+1”预读下一个迭代值的部分不起作用。读取前一个值和下一个值的正确语法是什么?

            <c:forEach items="${ctsDictionary}" var="cts" varStatus="status">

                <tr>
                    <td align="center">
                        PREV: <c:out value='${cts[status.index-1].value.clock_no}'/>
                        CURR: <c:out value='${cts.value.clock_no}'/> 
                        NEXT: <c:out value='${cts[status.index+1].value.clock_no}'/>
                    </td>
                </tr>   

            </c:forEach> 

【问题讨论】:

    标签: java javascript map jstl el


    【解决方案1】:

    我以前没用过这个,但我猜你需要使用${ctsDictionary[status.index-1] 而不是${cts[status.index-1],因为 cts 只是当前项目。

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 2018-09-02
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多