JSTL:如何获取Map的上一个和下一个迭代元素?

时间:2014-11-06 23:02:15

标签: java javascript map jstl el

我的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> 

1 个答案:

答案 0 :(得分:1)

我之前没有使用过此功能,但我猜您需要使用${ctsDictionary[status.index-1]代替${cts[status.index-1],因为cts只是当前项目。