Front

[thymeleaf 타임리프] 단순, 객체 반복문 활용하기

연_우리 2021. 12. 12. 23:15
반응형

th:each : 타임리프의 반복문

객체List 중에서 객체 하나씩 꺼내기

<tr th:each="prod : ${prods}">
  <td th:text="${prod.name}">Onions</td>
  <td th:text="${prod.price}">2.41</td>
  <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
</tr>

 

 

#numbers 숫자 유틸리티 개체

.sequence(from, to) : from부터 to까지 1씩 증가

.sequence(from, to, step) : from부터 to까지 step씩 증가

 

 

each문의 상태변수

index 상태변수를 사용하고자한다면 "반복변수명+Stat+.index" 이렇게 조합해서 사용한다

 

 - index : 0부터 시작하는 인덱스

 - count : 1부터 시작하는 인덱스

 - size : 리스트에 저장된 요소의 개수

 - even : 현재 반복이 짝수인지 확인. true/false 반환

 - odd : 현재 반복이 홀수인지 확인. true/false 반환

 - first : 현재 반복이 첫번째인지 확인. true/false 반환

 - last : 현재 반복이 마지막인지 확인. true/false 반환

 

예제

<li class="nav-item">
   <a class="nav-link" th:href="@{/category1}" th:classappend="${category}=='category1' ? 'custom-active' ">카테고리1</a>
</li>
<li class="nav-item">
   <a class="nav-link" th:href="@{/category2}" th:classappend="${category}=='category2' ? 'custom-active' ">카테고리2</a>
</li>
<li class="nav-item">
   <a class="nav-link" th:href="@{/category3}" th:classappend="${category}=='category3' ? 'custom-active' ">카테고리3</a>
</li>

위의 코드를 반복문으로 나타내고 싶다

 

 

<th:block th:each="num : ${#numbers.sequence(1,3)}">
   <li class="nav-item">
      <a class="nav-link"
      th:href="@{'/category'+${numStat.count}}"
      th:classappend="${category}=='category'+${numStat.count} ? 'custom-active'"
      th:text="카테고리+${numStat.count}">카테고리</a>
   </li>
</th:block>

 

반응형
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오톡 공유하기