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”, 여기에 루프의 인덱스를 보유 할 변수가 있습니다.
Zeor base index 또는 1 one base index를 읽는 데 사용할 수 있습니다.
${loop.count}` it will give 1 starting base index.
${loop.index} it will give 0 base index as normal Index of array
0부터 시작합니다.
예 :
<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 는 색인을 제공합니다. 다음 myIndex
은 LoopTagStatus 객체입니다.
따라서 다음과 같이 javascript 메소드로 보낼 수 있습니다.
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>
답변
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>
위 줄은 나에게 오류를주고 있었다. 그래서 나는 나를 위해 잘 작동하는 방식으로 아래에 적었습니다.
<a onclick="getCategoryIndex('<c:out value="${myIndex.index}"/>')" href="#">${categoryName}</a>
다른 사람이 같은 오류를받을 수도 있습니다. 이 사람들 좀 봐!
답변
이것은 나를 위해 작동합니다.
<c:forEach var="i" begin="1970" end="2000">
<option value="${2000-(i-1970)}">${2000-(i-1970)}
</option>
</c:forEach>