예를 들어 15개마다 줄바꿈이 되는 이런 모양의 웹 페이지를 만들고 싶은데, 사용 태그가 div라면

HTML 페이지는 이런 형태가 될 것입니다.

<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>

<style>
  .list {
    display: inline-block
  }

  .list>div {
    margin: 10px;
    background-color: antiquewhite
  }

</style>

<body>
  <div class="list">
    <!-- max 15 -->
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
  </div>
  <div class="list">
    <!-- max 15 -->
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
  </div>
  <div class="list">
    <!-- max 15 -->
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
    <div> ...... </div>
  </div>
</body>

</html>

이것을 스프링에서 단순 리스트를 이러한 형태로 표시하고 싶고 JSTL로 구현한다고 할 때, 이중 반복문을 사용해야 합니다. 다만 이 경우는 div 태그로 바깥에서 열고 닫고 하는 형태이기 때문에 일반적인 이중 반복문보다는 더 추가해야할 내용이 있습니다.

이것을 JSTL로 구현한다고 가정하면 다음과 같습니다.

<c:forEach var="item" items="${ list }" varStatus="status">
  <c:if test="${ status.index % 15 eq 0 }">
    <div class="list">
      <c:forEach var="j" begin="${ status.index }" end="${ status.index + (15 - 1) }" step="1">
        <c:if test="${ list[j] ne null }">
          <div> ${ list[j] } </div>
        </c:if>
      </c:forEach>
    </div>
  </c:if>
</c:forEach>

위에서 바깥 divdiv.list 의 위치에 신경써야 합니다. 내부 for문의 바깥에 위치시킵니다. ul li 등의 태그에도 적용 가능합니다.

문의 | 코멘트 또는 yoonbumtae@gmail.com


카테고리: Spring / JSPWEB: Backend


0개의 댓글

답글 남기기

Avatar placeholder

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다