lib - jstl java
Cómo obtener un valor de índice del bucle foreach en jstl (4)
$ {categoryName}
la línea de arriba estaba dando error para mí. entonces escribí abajo de manera que funciona bien para mí. '') "href =" # "> $ {categoryName}
Puede ser que alguien más tenga el mismo error. ¡Mira esto chicos!
Tengo un valor establecido en el objeto de request
como el siguiente,
String[] categoriesList=null;
categoriesList = engine.getCategoryNamesArray();
request.setAttribute("categoriesList", categoriesList );
y así es como repito en la página jsp
<% if(request.getAttribute("categoriesList") != null) { %>
<c:forEach var="categoryName" items="${categoriesList}">
<li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
</c:forEach>
<% }%>
¿Cómo obtengo el índice de cada elemento y lo paso a la función de JavaScript onclick="getCategoryIndex()"
.
Me enfrento a un problema similar ahora entiendo que tenemos alguna opción más: varStatus = "loop", Here will be loop variable que contendrá el índice de lop.
Se puede usar para leer en el índice base de Zeor o en 1 índice base.
${loop.count}` it will give 1 starting base index.
${loop.index} it will give 0 base index as normal Index of array
comienza desde 0.
Por ejemplo :
<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>
Para obtener más información, consulte este link
Puede usar el atributo varStatus
esta manera: -
<c:forEach var="categoryName" items="${categoriesList}" varStatus="myIndex">
myIndex.index te dará el índice. Aquí myIndex
es un objeto varStatus .
Por lo tanto, puede enviar eso a su método javascript de esta manera: -
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>
use varStatus para obtener el índice c: para cada propiedad varStatus
<c:forEach var="categoryName" items="${categoriesList}" varStatus="loop">
<li><a onclick="getCategoryIndex(${loop.index})" href="#">${categoryName}</a></li>
</c:forEach>