⚙️ 개발/Spring
[Thymeleaf] 반복문 및 상태
지구용사
2024. 10. 24. 12:03
반복문을 처리하기 위해 users라는 list를 view단으로 던져줍니다.
private void addUsers(Model model) {
List<User> list = new ArrayList<>();
list.add(new User("userA", 10));
list.add(new User("userB", 20));
list.add(new User("userC", 30));
model.addAttribute("users", list);
}
타임리프 반복을 통해 users 라는 컬렉션에서 객체 하나하나를 왼쪽 변수 user에 담아 반복실행한다.
참고로 컬렉션 객체는 list 외 Iterable, Enumeration을 구현한 모둔 객체를 다 사용할 수 있다.
<table border="1">
<tr>
<th>username</th>
<th>age</th>
</tr>
<tr th:each="user : ${users}">
<td th:text="${user.username}">username</td>
<td th:text="${user.age}">0</td>
</tr>
</table>
each 반복문에 두 번째 파라미터를 추가하면 반복의 상태를 확인할 수 있다.
<tr th:each="user, userStat : ${users}">
<td th:text="${userStat.index}">username</td>
<td th:text="${user.username}">username</td>
<td th:text="${user.age}">0</td>
</tr>
index | 인덱스 번호를 리턴한다. (0부터 시작) |
count | 갯수를 리턴한다. (1부터 시작) |
size | 전체 컬렉션 사이즈를 리턴한다. |
even | 현재 짝수 순서인지 boolean으로 리턴한다. |
odd | 현재 홀수 순서인지 boolean으로 리턴한다. |
first | 컬렉션의 첫번째 객체인지 boolean으로 리턴한다. |
last | 컬렉션의 마지막 객체인지 boolean으로 리턴한다. |
current | 컬렉션의 현재 겍체를 리턴한다. (굳이 사용X) |