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

Весна и Тимелиаф 3: Выражения

Краткое и практическое руководство по использованию служебных объектов выражения Thymeleaf с Spring MVC

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

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.

Пожалуйста, обратите внимание, что примеры не охватывают все доступные выражения утилит. Если вы хотите узнать обо всех типах утилит, посмотрите здесь .