Условные в Thymeleaf

Кондиционеры в тимелифе

1. обзор

В этом руководстве мы рассмотримdifferent types of conditionals available in Thymeleaf.

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

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

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


    org.thymeleaf
    thymeleaf
    3.0.9.RELEASE


    org.thymeleaf
    thymeleaf-spring5
    3.0.9.RELEASE

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

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

3. Тимелист

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

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

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

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

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

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

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

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

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

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

3.2. Если - если только

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


    Female
    Male

Если содержимое переменнойteacher.gender равноF,, то визуализируется элемент диапазона со значением «Female».

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

3.3. Switch - Case

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


    NO COURSES YET!
    
    

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

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

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

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