只迭代 jstl foreach 中的几个元素

Iterate only few elements inside a jstl foreeach

我有一个要求,我必须迭代保存在 PageContext 中的地图元素,在 jstl for each 中。而且我还在选项标签内使用了一个迭代器。所以我需要确保 fore each 循环迭代 1 小于 map al 的实际地图大小,这样我的迭代器 i 就不会完全迭代。

    select name="interval" id="interval" onchange="comeback()" >

    <% 
    String s="";
    s=(String)portletSession.getAttribute("int1"); 
    %>


     <option value="int">Time Interval</option>
     <c:forEach var="line" begin="0" end="<%= al.size()-1 %>" items="${al}">
     <option <%=((String)((Iterator)portletSession.getAttribute("i")).next()).equals(s)?"selected":" "%>  > <c:out value="${line.value}"/></option> 

    </c:forEach>

    <option value="others" <%=((String)((Iterator)portletSession.getAttribute("i")).next()).equals(s)?"selected":" "%> >> 60 Days </option>
    </select>

我尝试使用 begin end 但没有成功。 请帮帮我。

此致

end="<%= al.size()-2 %>"

你想要的最后一个元素应该是al.size()-2,根据数组的索引