How to get a index value from foreach loop in jstl
I faced similar problems. After research I understand we have some more options with the varStatus="loop"
. It can either use a zero based index or one based index:
- The
${loop.index}
uses a 0 base index - The
${loop.count}
uses a 1 base index
For Example :
<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>
For more Info please check this link.
You can use the varStatus
attribute like this:-
<c:forEach var="categoryName" items="${categoriesList}" varStatus="myIndex">
myIndex.index will give you the index. Here myIndex
is a LoopTagStatus object.
Hence, you can send that to your javascript method like this:-
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>