⚠️ th:text 대신 [[…]] 를 사용해도 전부 정상 작동 된다.

✏️ 산술 연산

  • 기본적인 산술 연산은 다른 언어와 동일하게 작동된다.
<span th:text="10 + 2"></span> // 12
<span th:text="10 % 2 == 0"> // true

✏️ 비교연산

  • 일반적인 비교연산자 뿐 아니라 Unescape 표기도 인식된다.
<span th:text="1 &gt; 10"></span> // >
<span th:text="1 gt 10"></span> // >
<span th:text="1 >= 10"></span>
<span th:text="1 ge 10"></span> // >=
<span th:text="1 == 10"></span>
<span th:text="1 != 10"></span>

✏️ 조건식

  • java 의 삼항 연산자와 구조가 동일하다.
<span th:text="(10 % 2 == 0)? '짝수':'홀수'"></span> // 짝수

✏️ Elvis 연산자

  • 변수의 data 가 없을경우 작동된다.
    • 조건식과 비슷하지만 null 일경우에 만 작동된다.
    • 값이 존재한다면 값이 그대로 출력된다.
    • data = “Spring!”
    • nullData = null
<span th:text="${data}?: '데이터가 없습니다.'"></span> // Spring!
<span th:text="${nullData}?: '데이터가 없습니다.'"></span> // 데이터가 없습니다.

✏️ No Operation 연산자

  • Elvis 연산자와 비슷한 방법으로 완전히 동일한 결과가 나온다
    • Elvis 연산자 뒤에 _ 를 추가하고, null 일경우 text 를 속성이 아닌 tag 내부에 입력하면 된다.
    • 값이 존재하면 값이 그대로 출력된다.
    • 값이 null 일경우 thymeleaf 문법이 무시되고 tag 내의 내용이 출력된다.
      • html 본래 기능이 실행됨
  • 정적 HTML 과 함께 사용될 때 사용되는 표기방식인것같다.
// Spring!
<span th:text="${data}?: _">데이터가 없습니다.</span> 

// 데이터가 없습니다. ( tag 내의 text 가 실행된거임)
<span th:text="${nullData}?: _">데이터가 없습니다.</span>
profile
잘못된 내용 PR 환영

0개의 댓글