[java] JSTL forEach 루프의 varStatus를 ID로 사용

JSTL forEach 루프의 개수를 사용하고 싶지만 코드가 작동하지 않는 것 같습니다.

<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount}">
    </div>
</c:forEach>

생산하다

<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >



답변

에서 설정 한 변수 는 int varStatus가 아닌 LoopTagStatus객체입니다. 사용하다:

<div id="divIDNo${theCount.index}">

명확히하기 위해 :

  • ${theCount.index}속성을 0설정하지 않으면 계산 시작begin
  • ${theCount.count} 계산 시작 1

답변

다음 중 하나를 사용합니다.

JSTL c : forEach varStatus 속성

속성 Getter 설명

  • current getCurrent () 현재 반복 라운드에 대한 항목 (컬렉션의 항목)입니다.

  • index getIndex () 현재 반복 라운드의 인덱스 (0부터 시작)입니다.

  • count getCount () 현재 반복 라운드의 1부터 시작하는 횟수

  • first isFirst () 현재 라운드가 반복의 첫 번째 패스인지 여부를 나타내는 플래그
  • last isLast () 현재 라운드가 반복의 마지막 패스인지 여부를 나타내는 플래그

  • begin getBegin () 시작 속성의 값

  • end getEnd () 종료 속성의 값

  • step getStep () 단계 속성의 값


답변

이것을 시도 할 수 있습니다. 비슷한 결과

 <c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount.count}"></div>
 </c:forEach>


답변

showDetailItem아래 코드 에 대한 ID를 동적으로 생성하는 데 정말 도움이되었습니다 .

<af:forEach id="fe1" items="#{viewScope.bean.tranTypeList}" var="ttf" varStatus="ttfVs" >
<af:showDetailItem  id ="divIDNo${ttfVs.count}" text="#{ttf.trandef}"......>

이 줄을 실행 <af:outputText value="#{ttfVs}"/>하면 다음과 같이 인쇄됩니다.

{index = 3, count = 4, last = false, first = false, end = 8, step = 1, begin = 0}


답변