Кондиционеры в тимелифе
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 , гдеX обозначает версию 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.