programing

jstl의 foreach 루프에서 인덱스 값을 가져오는 방법

newsource 2023. 1. 20. 16:12

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

varStatus를 사용하여 인덱스 c:forEach varStatus 속성 가져오기

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

저도 비슷한 문제에 직면했어요.조사를 마친 후, 우리는 더 많은 선택지를 가지고 있습니다.varStatus="loop". 제로 베이스 인덱스 또는1개의 베이스 인덱스를 사용할 수 있습니다.

  • ${loop.index}0 베이스 인덱스를 사용합니다.
  • ${loop.count}1 베이스 인덱스를 사용합니다.

예:

<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>

자세한 내용은 이 링크를 참조하십시오.

를 사용할 수 있습니다.varStatus다음과 같은 속성:-

<c:forEach var="categoryName" items="${categoriesList}" varStatus="myIndex">

myIndex.index는 인덱스를 제공합니다.여기서myIndexLoopTagStatus 객체입니다.

따라서 다음과 같이 javascript 메서드로 전송할 수 있습니다.

<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>

이것으로 충분합니다.

<c:forEach var="i" begin="1970" end="2000">
    <option value="${2000-(i-1970)}">${2000-(i-1970)} 
     </option>
</c:forEach>
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>

위의 라인이 오류를 나타내고 있었습니다.그래서 아래와 같이 적었는데, 저는 잘 되고 있습니다.

<a onclick="getCategoryIndex('<c:out value="${myIndex.index}"/>')" href="#">${categoryName}</a>

다른 사람도 같은 오류를 범할 수 있습니다.이 사람들 좀 봐!

언급URL : https://stackoverflow.com/questions/18825950/how-to-get-a-index-value-from-foreach-loop-in-jstl