betacode

Оператор Elvis в Thymeleaf

  1. Оператор Elvis

1. Оператор Elvis

Почти все языки программирования поддерживают оператор Elvis, ниже является стандартный синтаксис оператора Elvis в Thymeleaf:
<p th:utext="${myVariable} ? ${myValue1} : ${myValue2}"></p>
  • Если myVariable оценивается как true, код выше соответствует с <p th:utext="${myValue1}"></p>.
  • Если myVariable оценивается как false, код выше соответствует с <p th:utext="${myValue2}"></p>.
Примечание: В Thymeleaf переменная (Или условие) оценивается как false (ошибка) если его значение является null, false, 0, "false", "off", "no". Наоборот, он оценивается как true (верно).
Пример:
<h2 th:utext="${user} ?  ${user.userName} : 'You are not logged in' }"></h2>
Если вы встретите сниппет код ниже, вы може написать его более кратко:
<p th:utext="${myVariable} ? ${myVariable} : ${myValue2}"></p>

<!-- Write shorter: -->
<p th:utext="${myVariable} ?: ${myValue2}"></p>
Пример:
<!-- Example -->
<div th:utext="${errorMessage} ?:  'No error!' "></div> 

<!-- Example -->
<div th:object="${user}">
  ...
  <p>Age: <span th:text="*{age}?: '(no age specified)'">27</span>.</p>
</div>
Вплетенный оператор Elvis:
<span th:utext="${myVariable1} ? ${myValue1} : (${myVariable2} ? ${myValue21} : ${myValue22}) }"></span>
<!-- Other example .... -->