2013-03-03 5 views
2

Мне нужно было перебирать элементы, но я также ищу способ получить следующий или предыдущий элемент в списке элементов, чтобы, как вы можете видеть ниже, я могу проверить, есть ли второй элемент начинается с первого элемента. Есть ли способ сохранить элементы, например, в списке или массиве?JSTL ForEach Loop/Array или List

<c:forEach var="item" items="${entry.value.options}">       
        <c:set var="upper" value="${item.key }"/> 
        <c:choose> 
         <c:when test="${fn:startsWith(item, upper)}"> 
          <c:if test="${item ne upper} }"> 
           <ul> 
            <li> 
             <input class="parent" type="checkbox" name="criterias[${entry.key}]" value="${item.key}" /> 
             <label>${item.value}</label> 
            </li>          
           </ul> 
          </c:if> 
         </c:when> 
         <c:otherwise> 
         <li> 
          <input class="child" type="checkbox" name="criterias[${entry.key}]" value="${item.key}" /> 
          <label>${item.value}</label> 
         </li>  
         </c:otherwise> 
        </c:choose>    
    </c:forEach>  

Большое спасибо!

ответ

2

Вы можете передать jsp структуру вроде List<Item> list, где Item имеет собственный ArrayList, а затем использовать inner forEach. Это может быть проще, чем иметь плоскую структуру.

<c:forEach var="item" items="${list}"> 
Access here item if needed <c:out value="${item.value}"/> 
    <c:forEach var="elem" items="${item}"> 
    ... 
    Access here elem <c:out value="${elem.value}"/> 
    ... 
    </c:forEach> 
</c:forEach> 
+0

Привет, Алексей, Извините, я не понимал. Как сравнить предыдущий и следующий элементы в списке. В моем случае entry.value.options уже является списком. Я не могу вносить никаких изменений в backend. – NewQueries

Смежные вопросы