2014-11-06 110 views
0

我有一個TreeMap在我的servlet和如下填充它:在我的JSPJSTL:如何獲取Map的前一個和下一個迭代元素?

  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); 
      } 

然後,我需要顯示以前,當前和下一個/即將到來的迭代值的值。爲了簡單起見,在下面的代碼中,我刪除了第一行和最後一行的檢查,以避免索引超出界限錯誤。但我主要關心的是我使用「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

我以前沒有使用過這一點,但我的猜測是,你需要使用${ctsDictionary[status.index-1]而不是${cts[status.index-1]因爲CTS僅在當前項目。

相關問題