1. 소개

이 빠른 사용방법(예제)에서는 Thymeleaf에서 부울 값으로 작업하는 방법을 살펴볼 것입니다.

우리는 세부 사항에 다이빙을하기 전에, Thymeleaf 기본 사항에서 찾아 볼 수있다  이 쓰기까지 .

2. 식을 부울로 평가

Thymeleaf에서는 모든 값을 부울로 평가할 수 있습니다. false로 해석되는 몇 가지 값이 있습니다 .

  • 없는
  • 부울 값 false
  • 숫자 0
  • 캐릭터 \ 0
  • "false" , "off""no" 문자열

다른 모든 값은 true 로 평가됩니다 .

3. 렌더링 조건으로 부울 사용

HTML 요소를 조건부로 렌더링하려면 th : ​​if  및  th : ​​unless  속성의 두 가지 옵션이 있습니다 .

이들의 효과는 정확히 반대 - Thymeleaf가 함께 요소를 렌더링 일 : 경우  속성이 속성의 값이있는 경우에만 사실  과 함께 :의 값이있는 경우에만 속성을하지 않는 거짓

<span th:if="${true}">will be rendered</span>
<span th:unless="${true}">won't be rendered</span>
<span th:if="${false}">won't be rendered</span>
<span th:unless="${false}">will be rendered</span>

4. 논리 및 조건 연산자

또한 Thymeleaf에서 세 가지 고전적인 논리 연산자를 사용할 수 있습니다.

  • 또는
  • 키워드 not  또는 "!"를 사용한 부정 상징

변수 표현식 내에서 이러한 연산자를 사용하거나 여러 변수 표현식을 결합 할 수 있습니다.

<span th:if="${isRaining or isCold}">The weather is bad</span>
<span th:if="${isRaining} or ${isCold}">The weather is bad</span>
<span th:if="${isSunny and isWarm}">The weather is good</span>
<span th:if="${isSunny} and ${isWarm}">The weather is good</span>
<span th:if="${not isCold}">It's warm</span>
<span th:if="${!isCold}">It's warm</span>
<span th:if="not ${isCold}">It's warm</span>
<span th:if="!${isCold}">It's warm</span>

조건 연산자 인 if-then , if-then-else 및 기본 연산자를 사용할 수도 있습니다.

경우 - 당시 다른  운영자는 보통 원, 또는 ? : 운영자:

It's <span th:text="${isCold} ? 'cold' : 'warm'"></span>

또한 if-then  연산자는 else 부분이없는 단순화 된 버전입니다.

<span th:text="${isRaining or isCold} ? 'The weather is bad'"></span>

기본 연산자는 null이  아니면 첫 번째 피연산자를 반환하고 그렇지 않으면 두 번째 피연산자를 반환합니다 .

<span th:text="'foo' ?: 'bar'"></span> <!-- foo -->
<span th:text="null ?: 'bar'"></span> <!-- bar -->
<span th:text="0 ?: 'bar'"></span> <!-- 0 -->
<span th:text="1 ?: 'bar'"></span> <!-- 1 -->

기본 연산자는 Elvis의 헤어 스타일과 매우 유사하기 때문에 Elvis 연산자라고도합니다.

Elvis 연산자는 null  검사 만 수행하며 첫 번째 피연산자를 부울로 평가하지 않습니다.

5. #bools  유틸리티 개체

#bools는  기본적으로 표현식에서 사용할 수 있으며 몇 가지 편리한 방법이있는 유틸리티 오브젝트입니다 :

  • # bools.isTrue (obj)  는 인수가 true 로 평가되는지 여부를 반환합니다.
  • # bools.isFalse (obj)  는 인수가 false 로 평가되는지 여부를 반환합니다.
  • # bools.xxxIsTrue (collection) # bools.isTrue () 사용하여 인수의 요소를 부울로 변환 한 다음 동일한 유형의 컬렉션으로 수집합니다.
  • # bools.xxxIsFalse (collection) # bools.isFalse () 사용하여 인수의 요소를 부울로 변환 한 다음 동일한 유형의 컬렉션으로 수집합니다.
  • # bools.xxxAnd (컬렉션)  반환 진정한  인수의 모든 요소가로 평가되는 경우 는 true
  • # bools.xxxOr (컬렉션)  반환 진정한  인수의 모든 요소를 평가하는 경우 는 true

위의 메소드에서 xxx 메소드의 인수 (및 xxxIsTrue () xxxIsFalse ()의 경우 반환 값)에 따라 array , list  또는 set수 있습니다  .

6. 결론

이 기사에서는 Thymeleaf가 값을 부울로 해석하는 방법과 요소를 조건부로 렌더링하고 부울 표현식으로 작업하는 방법을 살펴 보았습니다.

평소처럼 코드 (더 많은 예제 포함)는 Github에서 사용할 수 있습니다 .