如何从jstl中的foreach循环获取索引值

我有一个在request对象中设置的值如下,

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

这是我如何在jsp页面中迭代

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

如何获得每个元素的索引并将其传递给JavaScript函数onclick="getCategoryIndex()"

使用varStatus获取索引c:forEach varStatus属性

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

你可以像这样使用varStatus属性: –

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

myIndex.index会给你索引。 这里myIndex是一个LoopTagStatus对象。

因此,你可以发送到你的JavaScript方法是这样的: –

 <a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a> 

我面临类似的问题,现在我明白我们有更多的select:varStatus =“循环”,这里将是循环将variables,将持有的索引的洛普。

它可以用于读取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> 

欲了解更多信息,请参阅此链接

$ {}类别名称

上线给我错误。 所以我以下面的方式写下来,对我来说工作很好。 ')“href =”#“> $ {categoryName}

可能是别人可能会得到相同的错误。 看看这个家伙!