1. введение
Thymeleaf – это движок шаблонов Java для обработки и создания HTML, XML, JavaScript, CSS и обычного текста. Для введения в Thymeleaf и Spring взгляните на эту запись .
Помимо этих основных функций, Thymeleaf предлагает нам набор служебных объектов, которые помогут нам выполнять общие задачи в нашем приложении.
В этой статье мы обсудим основную функцию в Thymeleaf 3.0 – объекты утилиты выражения в приложениях Spring MVC. Более конкретно, мы рассмотрим тему обработки дат, календарей, строк, объектов и многого другого.
2. Зависимости Maven
Во-первых, давайте рассмотрим необходимую конфигурацию, необходимую для интеграции Thymeleaf с Spring. В наших зависимостях требуется библиотека thymeleaf-spring :
org.thymeleaf thymeleaf 3.0.11.RELEASE org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE
Обратите внимание, что для проекта Spring 4 библиотека thymeleaf-spring4 должна использоваться вместо thymeleaf-spring 5 . Последнюю версию зависимостей можно найти здесь .
3. Объекты утилиты выражения
Прежде чем перейти к основной теме этой статьи, если вы хотите сделать шаг назад и посмотреть, как настроить Thymeleaf 3.0 в своем проекте веб-приложения, ознакомьтесь с этим руководством .
Для целей текущей статьи мы создали контроллер Spring и HTML – файл-чтобы протестировать все функции, которые мы собираемся обсудить. Ниже приведен полный список доступных вспомогательных объектов и их функций:
- #dates : служебные методы для java.util.Дата объекты
- #календари : аналогично #датам , используемым для java.util.Календарь объекты
- #numbers : служебные методы форматирования числовых объектов
- #strings : служебные методы для String объектов
- #объекты : служебные методы для Java Объект класс в целом
- ##книги : служебные методы для логической оценки
- #массивы : служебные методы для массивов
- #списки : служебные методы для списков
- #наборы : служебные методы для наборов
- #maps : служебные методы для карт
- #агрегаты : служебные методы для создания агрегатов в массивах или коллекциях
- #messages : служебные методы для получения внешних сообщений внутри выражений переменных
3.1. Объекты Дат
Первая функция, которую мы хотим обсудить, – это обработка файла java.util.Дата объекты. Объекты утилиты выражения, ответственные за обработку данных , начинаются с #dates.function Name(). Первая функция, которую мы хотим охватить, – это форматирование объекта Date (который добавляется к параметрам модели Spring).
Допустим, мы хотим использовать формат ISO8601 :
Независимо от того, как наша дата была установлена на внутренней стороне, она должна отображаться в соответствии с этим стандартом. Более того, если мы хотим быть конкретными с форматом, мы можем указать его вручную:
Функция принимает в качестве параметров две переменные: Дата и ее формат.
Наконец, вот несколько аналогичных полезных функций, которые мы можем использовать:
В первом мы получим название дня недели, во втором мы создадим новый объект Date , и, наконец, мы создадим новый объект Date со временем, установленным на 00:00.
3.2. Объекты календаря
Утилиты календаря очень похожи на обработку дат, за исключением того, что мы используем экземпляр java.util.Календарь объект:
Единственное различие заключается в том, когда мы хотим создать новый Календарь экземпляр:
Пожалуйста, обратите внимание, что мы можем использовать любой метод Calendar class для получения запрошенных данных.
3.3. Обработка чисел
Еще одна очень важная функция-обработка чисел. Давайте сосредоточимся на переменной num , случайно созданной с типом double :
В первой строке мы форматируем десятичное число, устанавливая минимальные целочисленные цифры и точные десятичные цифры. Во втором, помимо целых и десятичных цифр, мы указали десятичный разделитель. Параметры: ТОЧКА , ЗАПЯТАЯ , ПРОБЕЛ , НЕТ или ПО УМОЛЧАНИЮ (по локали).
Есть еще одна функция, которую мы хотим представить в этом параграфе. Это создание последовательности целых чисел:
В первом примере мы попросили Thymeleaf сгенерировать последовательность из 0-2, тогда как во втором в дополнение к минимальному и максимальному значению мы предоставили определение шага (в этом примере значения изменятся на два).
Обратите внимание, что интервал закрыт с обеих сторон.
3.4. Операции со строками
Это наиболее полная функция объектов утилиты выражения.
Мы можем начать описание с утилиты проверки пустых или null | String объектов. Довольно часто разработчики используют для этого методы Java внутри тегов Thymeleaf, что может быть небезопасно для объектов null .
Вместо этого мы можем сделать это:
Первая строка | не пуста, поэтому метод вернет false. Вторая Строка равна null , поэтому мы получим true . Наконец, мы можем использовать метод #strings.default String(…) для указания значения по умолчанию, если String будет пустым.
Существует еще много методов. Все они работают не только со строками, но и с Java.Коллекции. Например, для использования операций, связанных с подстроками:
или использовать нулевое безопасное сравнение и конкатенацию:
Наконец, есть функции, связанные со стилем текста, которые сохранят синтаксис всегда одинаковым:
В первом методе сокращенный текст будет иметь максимальный размер n . Если текст больше, он будет обрезан и закончен “…”.
Во втором методе мы будем писать слова с заглавной буквы.
3.5. Агрегаты
Последняя, но не менее важная функция, которую мы хотим здесь обсудить, – это агрегаты . Они null безопасны и предоставляют утилиты для вычисления среднего значения или суммы из массива или любой другой коллекции:
4. Заключение
В этой статье мы обсудили функции утилиты Expression, реализованные в платформе Thymeleaf версии 3.0.
Полную реализацию этого руководства можно найти в проекте GitHub .
Как проверить? Мы предлагаем сначала поиграть с браузером, а затем проверить существующие тесты JUnit.
Пожалуйста, обратите внимание, что примеры не охватывают все доступные выражения утилит. Если вы хотите узнать обо всех типах утилит, посмотрите здесь .