Как получить значение индекса из цикла foreach в jstl



у меня есть набор значений в request объект следующим образом:



String[] categoriesList=null;
categoriesList = engine.getCategoryNamesArray();
request.setAttribute("categoriesList", categoriesList );


и вот как я повторяю в JSP page



<% if(request.getAttribute("categoriesList") != null) { %>
<c:forEach var="categoryName" items="${categoriesList}">
<li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
</c:forEach>
<% }%>


как мне получить индекс каждого элемента и передать его в функцию JavaScript onclick="getCategoryIndex()".

560   4  

4 ответов:

использовать varStatus получить индекс c: свойства foreach varStatus

<c:forEach var="categoryName" items="${categoriesList}" varStatus="loop">
    <li><a onclick="getCategoryIndex(${loop.index})" href="#">${categoryName}</a></li>
</c:forEach>

можно использовать такой:-

<c:forEach var="categoryName" items="${categoriesList}" varStatus="myIndex">

myIndex.индекс даст вам индекс. Здесь myIndex - это LoopTagStatus

я сталкиваюсь с подобной проблемой теперь я понимаю, что у нас есть еще несколько вариантов : varStatus= "loop", здесь будет переменная loop will, которая будет содержать индекс lop.

Он может использовать для использования для чтения базового индекса Zeor или 1 одного базового индекса.

${loop.count}` it will give 1 starting base index.

${loop.index} it will give 0 base index as normal Index of array начать с 0.

Например :

<c:forEach var="currentImage" items="${cityBannerImages}" varStatus="loop">
<picture>
   <source srcset="${currentImage}" media="(min-width: 1000px)"></source>
   <source srcset="${cityMobileImages[loop.count]}" media="(min-width:600px)"></source>
   <img srcset="${cityMobileImages[loop.count]}" alt=""></img>
</picture>
</c:forEach>

для получения дополнительной информации, пожалуйста, обратитесь этот ссылке

${categoryName}

строке дает ошибку для меня. поэтому я записал ниже способ, который отлично работает для меня. ') "href=" # " >${categoryName}

может быть кто-то еще может получить ту же ошибку. Посмотрите на этих ребят!!

Comments

    Ничего не найдено.