Thymeleaf
[Thymeleaf] 조건 (if, unless, switch)
걸어가는 신사
2022. 1. 25. 19:34
타임리프의 조건식
- if, unless (if의 반대), switch
Example
/Controller
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);
1. if
th:if
<tr th:each="user, userStat : ${users}">
<td>
<span th:text="'미성년자'" th:if="${user.age lt 20}"></span>
<!-- 10 < 20 = true => 미성년자 출력 -->
<!-- 20 < 20 = false -->
<!-- 30 < 20 = false -->
</td>
</tr>
- 타임리프는 해당 조건이 맞지 않으면 태그 자체를 렌더링 하지 않는다.
- if 조건이 false 인 경우 span 태그가 사라진다.
2. unless (= if not)
th:unless
<tr th:each="user, userStat : ${users}">
<td>
<span th:text="'미성년자'" th:unless="${user.age ge 20}"></span>
<!-- !(10 > 20) = true => 미성년자 출력 -->
<!-- !(20 > 20) = false -->
<!-- !(30 > 20) = false -->
</td>
</tr>
- 타임리프는 해당 조건이 맞지 않으면 태그 자체를 렌더링하지 않는다.
- unless 조건이 false 인 경우 span 태그가 사라진다.
3. switch
th:switch
th:case
<tr th:each="user, userStat : ${users}">
<td th:switch="${user.age}">
<span th:case="10">10살</span> <!-- 10 == 10 = true 일때 10살 출력 -->
<span th:case="20">20살</span> <!-- 20 == 20 = true 일때 20살 출력 -->
<span th:case="*">기타</span> <!-- 만족하는 조건이 없을 때 기타 출력 -->
</td>
</tr>
- *은 만족하는 조건이 없을 때 사용하는 디폴트이다.
반응형