스프링/Thymeleaf

[Thymeleaf] 다양한 연산자

imcoding 2022. 9. 23. 16:24

 

 

Thymeleaf

 

 

산술 연산

일반적인 산술 연산 기호다.

 

식을 써서 boolean 값을 반환할 수도 있다.

입력
  <li>산술 연산
    <ul>
      <li>10 + 2 = <span th:text="10 + 2"></span></li>
      <li>10 % 2 == 0 = <span th:text="10 % 2 == 0"></span></li>
    </ul>
  </li>​
출력

 

비교 연산

일반적인 비교 연산 기호로 표시 가능하다.

 

태그 표시와 혼동을 방지하여 문자로 대체할 수도 있다.

입력
  <li>비교 연산
    <ul>
      <li>1 > 10 = <span th:text="1 &gt; 10"></span></li>
      <li>1 gt(>) 10 = <span th:text="1 gt 10"></span></li>
      <li>1 >= 10 = <span th:text="1 >= 10"></span></li>
      <li>1 ge(>=) 10 = <span th:text="1 ge 10"></span></li>
      <li>1 == 10 = <span th:text="1 == 10"></span></li>
      <li>1 != 10 = <span th:text="1 != 10"></span></li>
      <li>1 < 10 = <span th:text="1 &lt; 10"></span></li>
      <li>1 lt(<) 10 = <span th:text="1 lt 10"></span></li>
      <li>1 le(<=) 10 = <span th:text="1 le 10"></span></li>
      <li>1 <= 10 = <span th:text="1 <= 10"></span></li>
    </ul>
  </li>​
> : &gt; / gt
>= : ge
< : &lt; / lt
<= : ge
출력

 

연산을 이용한 조건식

연산으로 자바의 조건식과 같은 형태를 만들 수 있다.

입력
  <li>조건식
    <ul>
      <li>(10 % 2 == 0)? '짝수':'홀수' = <span th:text="(10 % 2 == 0)?'짝수':'홀수'"></span></li>
    </ul>
  </li>
출력

 

Elvis 연산자

값이 있다면 값이 출력되고, null 이라면 새로 입력한 값이 출력된다.

위 조건식과 비슷하나, true일 경우에는 값 자신이 출력되는 구조다.

data = Spring

nullData = null

입력
  <li>Elvis 연산자
    <ul>
      <li>${data}?: '데이터가 없습니다.' = <span th:text="${data}?: '데이터가 없습니다.'"></span></li>
      <li>${nullData}?: '데이터가 없습니다.' = <span th:text="${nullData}?:'데이터가 없습니다.'"></span></li>
    </ul>
  </li>​
출력

 

No-Operation

_ 인 경우 타임리프 태그가 무효화되고 HTML 내용만 출력할 수 있다.

 

출력 결과를 보면 "데이터가 없습니다." 부분이 그대로 출력된다.

 

data = Spring!

nullData = null

입력
  <li>No-Operation
    <ul>
      <li>${data}?: _ = <span th:text="${data}?: _">데이터가 없습니다.</span></li>
      <li>${nullData}?: _ = <span th:text="${nullData}?: _">데이터가 없습니다.</span></li>
    </ul>
  </li>​
출력