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는 인덱스를 제공합니다.여기서myIndex
는 LoopTagStatus 객체입니다.
따라서 다음과 같이 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
'programing' 카테고리의 다른 글
통신 링크 장애: 1047 WSREP에서 어플리케이션용 노드가 아직 준비되지 않았습니다. (0) | 2023.01.20 |
---|---|
java.lang을 방지하려면 어떻게 해야 하나요?NumberFormatException:입력 문자열의 경우: "N/A"? (0) | 2023.01.20 |
Vue js가 사용자 지정 구성 요소를 렌더링하지 않음 (0) | 2023.01.20 |
MySQL을 datetime 필드와 비교()(시간이 아닌 날짜만) (0) | 2023.01.20 |
$this->db->affected_rows()는 왜0을 반환합니까? (0) | 2023.01.20 |