Рубрики
Без рубрики

Условные обозначения в Тимелифе

Узнайте о различных типах условных обозначений Thymeleaf.

Автор оригинала: baeldung.

1. Обзор

В этом уроке мы рассмотрим различные типы условных обозначений, доступных в Thymeleaf .

Для быстрого ознакомления с Thymeleaf, пожалуйста, обратитесь к этой статье .

2. Зависимости Maven

Давайте начнем с зависимостей Maven, которые необходимы для использования Thymeleaf вместе с Spring:


    org.thymeleaf
    thymeleaf
    3.0.11.RELEASE


    org.thymeleaf
    thymeleaf-spring5
    3.0.11.RELEASE

Для других весенних выпусков следует использовать соответствующую библиотеку thymeleaf-springX , где X означает весеннюю версию. Пожалуйста , также обратите внимание, что Spring 5 поддерживается, начиная с 3.0.8.RELEASE , Thymeleaf.

Последние версии необходимых зависимостей можно найти здесь .

3. Условные обозначения Тимелеафа

Мы должны различать условные обозначения, которые позволяют нам отображать текст внутри HTML-элемента в зависимости от условия, и те, которые управляют созданием экземпляра самого HTML-элемента.

Давайте определим наш класс Teacher model, который мы будем использовать на протяжении всей этой статьи:

public class Teacher implements Serializable {
    private String gender;
    private boolean isActive;
    private List courses = new ArrayList<>();
    private String additionalSkills;

3.1. Оператор Элвиса

Оператор Elvis ?: позволяет отображать текст в элементе HTML в зависимости от текущего состояния переменной.

Мы можем использовать выражения по умолчанию для предоставления текста по умолчанию, если переменная имеет значение null :

В верхнем примере мы хотим отобразить содержимое переменной teacher.additional Skills , если она определена, и мы хотим, чтобы текст ” UNKNOWN ” отображался иначе.

Также можно отображать произвольный текст в зависимости от логического выражения:

Мы можем запросить простую булеву переменную, как в предыдущем примере, но сравнение строк и проверка диапазона также возможны.

Поддерживаются следующие компараторы и их текстовые представления > (gt), >= (ge), < (lt), <= (le), == (eq) и != (ne) .

3.2. Если – Если

Атрибуты th:if и th:if позволяют нам отображать HTML-элемент в зависимости от заданного условия:


    Female
    Male

Если содержимое переменной teacher.gender равно F, , то отображается элемент span со значением ” Female “.

В противном случае отображается элемент с ” Male “. Такая настройка сопоставима с предложением if-else , присутствующим в большинстве языков программирования.

3.3. Распределительный ящик

Если существует более двух возможных результатов выражения, мы можем использовать атрибуты th:switch и th:case для условного отображения элементов HTML:


    NO COURSES YET!
    
    

В зависимости от размера списка teacher.courses мы либо показываем текст по умолчанию, либо один курс, либо все доступные курсы. Звездочка (*) используется для параметра по умолчанию.

4. Заключение

В этой короткой статье мы исследовали различные типы условных обозначений Thymeleaf и представили несколько упрощенных примеров, показывающих различные варианты.

Примеры можно найти в проекте GitHub .