J'ai une valeur définie dans l'objet request
comme ci-dessous,
String[] categoriesList=null;
categoriesList = engine.getCategoryNamesArray();
request.setAttribute("categoriesList", categoriesList );
et voici comment j'itère dans la page jsp
<% if(request.getAttribute("categoriesList") != null) { %>
<c:forEach var="categoryName" items="${categoriesList}">
<li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
</c:forEach>
<% }%>
Comment puis-je obtenir l'index de chaque élément et le passer à la fonction JavaScript onclick="getCategoryIndex()"
.
utilisez varStatus pour obtenir l'index c: forEach, propriétés varStatus
<c:forEach var="categoryName" items="${categoriesList}" varStatus="loop">
<li><a onclick="getCategoryIndex(${loop.index})" href="#">${categoryName}</a></li>
</c:forEach>
Je fais face à un problème similaire maintenant, je comprends, nous avons encore une option: varStatus = "loop", Ici sera une variable variable qui contiendra l’index de lop.
Il peut être utilisé pour lire pour index de base Zeor ou 1 index de base.
${loop.count}` it will give 1 starting base index.
${loop.index} it will give 0 base index as normal Index of array
commence à 0.
Par exemple:
<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>
Pour plus d'informations s'il vous plaît se référer à ceci lien
Vous pouvez utiliser l'attribut varStatus
comme ceci: -
<c:forEach var="categoryName" items="${categoriesList}" varStatus="myIndex">
myIndex.index vous donnera l'index. Ici myIndex
est un objet LoopTagStatus .
Par conséquent, vous pouvez envoyer cela à votre méthode javascript comme ceci: -
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>
dessus de la ligne me donnait une erreur. J'ai donc écrit ci-dessous ce qui fonctionne bien pour moi.
<a onclick="getCategoryIndex('<c:out value="${myIndex.index}"/>')" href="#">${categoryName}</a>
Peut-être que quelqu'un d'autre pourrait avoir la même erreur. Regardez ces gars!
Cela fonctionne pour moi:
<c:forEach var="i" begin="1970" end="2000">
<option value="${2000-(i-1970)}">${2000-(i-1970)}
</option>
</c:forEach>