jstlのforeachループからインデックス値を取得する方法 質問する

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()"

ベストアンサー1

使用変数ステータスインデックスを取得するc:forEach varStatus プロパティ

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

おすすめ記事