2012-09-22 1 views
1

나는이 로직을 거의 모든 곳에서 검색했지만 멋진 작업을 한 적이 없으므로이 질문을 확신합니다.html 행 jstl에서 반복 및 모음 표시

나는 ArrayList에 있고 그것은 반복 다음과 같은 형식으로 표시 할 필요가

사용자 1 사용자 2 사용자 3
USER4 USER5 User6
User7 User8 사용자 9 나는이 사용하는 일반 JSP를 할 수 있어요

스크립틀릿은 JSTL을 사용하지 않습니다. JSTL을 사용해 보았지만 목록에서 몇 가지 항목을 건너 뜁니다. 여기 내 코드는

<tr> 
     <c:forEach var="party" items="${partiesList}"> 
     <c:set var="ctr" value="${ctr+1}" scope="page"/> 
     <c:choose> 
     <c:when test="${ctr le 3}"> 
      <td> 
       <figure> 
        <img src="images/${party.avatarUrl}" onclick="showHide('','${party.screenName}')" class="avaimg" alt="${party.screenName}"> 
        <figcaption><spring:message code="user.${party.screenName}" text="${party.screenName}"/></figcaption> 
       </figure> 
      </td> 
     </c:when> 
     <c:otherwise> 
    </tr> 
    <c:set var="ctr" value="0" scope="page"/> 
    </c:otherwise> 
    </c:choose> 
    </c:forEach> 

도움이 되길 바랍니다. 당신은 varStatus 속성과 나머지 연산자 (%)를 사용하여이 작업을 수행 할 수 있습니다 사전

+0

여기 내 대답 http://stackoverflow.com/questions/7670575/how-to-create-a-div-grid-using-jstl-cforeach에게 –

+0

감사 발견 너는 AVD 및 ControlPower! 미안하지만, 나는 평판이 아주 못하다. –

답변

0

감사합니다. index

반복 현재 라운드의 인덱스이고

<table> 
    <c:forEach var="party" items="${partiesList}" varStatus="status"> 
    <c:if test="${status.index % 3 == 0}"><tr></c:if> 
    <td>${status.index}</td> 
    <c:if test="${status.index % 3 == 2}"></tr></c:if> 
    </c:forEach> 
</table> 

varStatusLoopTagStatus 객체를 리턴한다. 기본 배열, java.lang.Collection 또는 다른 유형의 하위 집합에 대해 반복 작업이 수행되는 경우 반환되는 인덱스는 기본 집합과 관련하여 절대적입니다. 지수는 0 기준입니다.

modulo 연산자를 사용하여 새 행을 시작하거나 닫아야하는지 확인할 수 있습니다.


다른 접근 방식은 목록을 반복하면서 번호없는 목록으로 출력하고 CSS를 사용하여 원하는 방식으로 스타일을 지정하는 것입니다. 그게 내가 해결했을거야. 당신의 CSS를 볼 수있는 방법의 예 :

ul.my-class { overflow: hidden; width: 600px; } 
ul.my-class li { float: left; width: 200px; } 
+0

재스퍼. –