1. 개요
이 예제에서는 Thymeleaf에서 사용할 수 있는 다양한 유형의 조건문을 살펴 보겠습니다 .
Thymeleaf에 대한 빠른 소개는이 기사 를 참조 하십시오 .
2. Maven 의존성
Spring과 함께 Thymeleaf를 사용하는 데 필요한 Maven 의존성부터 시작하겠습니다.
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
다른 Spring 릴리스의 경우 일치하는 thymeleaf-springX 라이브러리를 사용해야합니다. 여기서 X 는 Spring 버전을 나타냅니다. 도 있습니다 Spring 5로 시작하는 지원 3.0.8.RELEASE Thymeleaf에 의해.
필요한 의존성의 최신 버전은 여기 에서 찾을 수 있습니다 .
3. Thymeleaf 조건문
조건에 따라 HTML 요소 내에서 텍스트를 렌더링 할 수있는 조건과 HTML 요소 자체의 인스턴스화를 제어하는 조건을 구분해야합니다.
이 기사 전체에서 사용할 Teacher 모델 클래스를 정의 해 보겠습니다 .
public class Teacher implements Serializable {
private String gender;
private boolean isActive;
private List<String> courses = new ArrayList<>();
private String additionalSkills;
3.1. 엘비스 운영자
Elvis 연산자 ? : 변수의 현재 상태에 따라 HTML 요소 내에서 텍스트를 렌더링 할 수 있습니다.
변수가 null 인 경우 기본 표현식을 사용하여 기본 텍스트를 제공 할 수 있습니다 .
<td th:text="${teacher.additionalSkills} ?: 'UNKNOWN'" />
위의 예에서 우리 는 정의 된 경우 teacher.additionalSkills 변수 의 내용을 표시하고 그렇지 않은 경우 “ UNKNOWN ” 텍스트 가 렌더링 되기를 원합니다 .
부울 표현식에 따라 랜덤의 텍스트를 표시 할 수도 있습니다.
<td th:text="${teacher.active} ? 'ACTIVE' : 'RETIRED'" />
이전 예제에서와 같이 간단한 부울 변수를 쿼리 할 수 있지만 문자열 비교 및 범위 검사도 가능합니다.
다음 비교기 및 해당 텍스트 표현이 지원됩니다 > (gt),> = (ge), <(lt), <= (le), == (eq) 및! = (ne) .
3.2. If – 그렇지 않으면
일 : 경우 및 제 :하지 않는 속성이 우리가 제공 한 조건에 따라 HTML 요소를 렌더링 할 수 있습니다 :
<td>
<span th:if="${teacher.gender == 'F'}">Female</span>
<span th:unless="${teacher.gender == 'F'}">Male</span>
</td>
teacher.gender 변수 의 내용이 F 와 같으면 값이 " Female "인 범위 요소 가 렌더링됩니다.
그렇지 않으면 " Male "이 있는 요소 가 렌더링됩니다. 이러한 설정은 대부분의 프로그래밍 언어에 있는 if-else 절 과 비슷합니다 .
3.3. 스위치 – 케이스
표현식의 가능한 결과가 두 개 이상인 경우 HTML 요소의 조건부 렌더링을 위해 th : switch 및 th : case 속성을 사용할 수 있습니다 .
<td th:switch="${#lists.size(teacher.courses)}">
<span th:case="'0'">NO COURSES YET!</span>
<span th:case="'1'" th:text="${teacher.courses[0]}"></span>
<div th:case="*">
<div th:each="course:${teacher.courses}" th:text="${course}"/>
</div>
</td>
teacher.courses List 의 크기에 따라 기본 텍스트, 단일 코스 또는 사용 가능한 모든 코스가 표시됩니다. 기본 옵션 에는 별표 (*) 가 사용됩니다.
4. 결론
이 짧은 기사에서 우리는 다양한 유형의 Thymeleaf 조건문을 조사하고 다양한 옵션을 보여주는 몇 가지 간단한 예를 제시했습니다.
예제는 GitHub 프로젝트 에서 찾을 수 있습니다 .
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/spring-thymeleaf-conditionals
'Java' 카테고리의 다른 글
Thymeleaf에서 날짜로 작업하는 방법 (0) | 2021.04.07 |
---|---|
Thymeleaf에서 조각 작업 (0) | 2021.04.07 |
Thymeleaf의 반복 (0) | 2021.04.06 |
List에 대한 Thymeleaf 페이지 매김이있는 Spring (0) | 2021.04.06 |
Thymeleaf에서 열거 형 작업 (0) | 2021.04.06 |