我在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()"
。
答案 0 :(得分:204)
使用varStatus获取索引c:forEach varStatus properties
<c:forEach var="categoryName" items="${categoriesList}" varStatus="loop">
<li><a onclick="getCategoryIndex(${loop.index})" href="#">${categoryName}</a></li>
</c:forEach>
答案 1 :(得分:15)
我面临类似的问题,现在我知道我们还有更多的选择: varStatus =&#34; loop&#34;,这将是loop将变量,它将保存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>
有关详细信息,请参阅此link
答案 2 :(得分:11)
您可以使用varStatus
这样的属性: -
<c:forEach var="categoryName" items="${categoriesList}" varStatus="myIndex">
myIndex.index 会为您提供索引。此处myIndex
是LoopTagStatus对象。
因此,您可以将其发送到您的javascript方法,如下所示: -
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>
答案 3 :(得分:0)
$ {类别名称}
以上行给了我错误。所以我用下面的方式写下来,这对我来说很好。 &#39;)&#34; HREF =&#34;#&#34;&GT; $ {类别名称}
可能是别人可能会得到同样的错误。看看这些家伙!!
答案 4 :(得分:0)
这对我有用:
<c:forEach var="i" begin="1970" end="2000">
<option value="${2000-(i-1970)}">${2000-(i-1970)}
</option>
</c:forEach>