Thymeleaf — это механизм шаблонов Java XML / XHTML / HTML5 , который может работать как в веб-средах ( на основе сервлетов ), так и в не-веб-средах. Он лучше подходит для обслуживания XHTML/HTML5 на уровне представления веб-приложений на основе MVC , но может обрабатывать любой XML-файл даже в автономных средах. Он обеспечивает полную интеграцию Spring Framework .
В веб-приложениях Thymeleaf стремится стать полной заменой JavaServer Pages (JSP) и реализует концепцию естественных шаблонов : файлов шаблонов, которые можно напрямую открывать в браузерах и которые по-прежнему корректно отображаются как веб-страницы.
Thymeleaf — это программное обеспечение с открытым исходным кодом , распространяемое по лицензии Apache License 2.0 .
Функции
С сайта проекта: [2]
- Механизм шаблонов Java для XML , XHTML и HTML5 .
- Работает как в веб-, так и в не-веб- (оффлайн) средах. Нет жесткой зависимости от API сервлетов .
- Основан на модульных наборах функций, называемых диалектами .
- Функции диалекта (например, оценка, итерация и т. д.) применяются путем привязки их к тегам и/или атрибутам шаблона.
- Два готовых диалекта доступны: Standard и SpringStandard (для приложений Spring MVC тот же синтаксис, что и у Standard).
- Разработчики могут расширять и создавать собственные диалекты.
- Несколько режимов шаблона:
- XML : проверка на соответствие DTD или нет.
- XHTML 1.0 и 1.1 : проверка на соответствие стандартным DTD или нет.
- HTML5 : как код в формате XML, так и устаревший HTML5. Устаревший код, отличный от XML, будет автоматически очищен и преобразован в форму XML .
- Полная (и расширяемая) поддержка интернационализации .
- Настраиваемый высокопроизводительный анализируемый кэш шаблонов , который сводит к минимуму ввод/вывод.
- Автоматические переводы DOCTYPE – из DTD шаблона в DTD результата – для (необязательной) проверки как шаблона, так и кода результата.
- Чрезвычайно расширяемый: при необходимости можно использовать в качестве платформы шаблонизатора.
- Полная документация, включая несколько примеров приложений.
Пример тимелеафа
В следующем примере создается таблица HTML5 со строками для каждого элемента переменной List<Product> с именем allProducts .
< table > < thead > < tr > < th th:text = "#{msgs.headers.name}" > Имя </ th > < th th:text = "#{msgs.headers.price}" > Цена < / th > </ tr > </ thead > < tbody > < tr th:each = "prod : ${allProducts}" > < td th:text = "${prod.name}" > Oranges </ td > < td th:text = "${#numbers.formatDecimal(prod.price,1,2)}" > 0,99 </ td > </ tr > </ tbody > </ table >
Этот фрагмент кода включает в себя:
- Выражения интернационализации: #{ ... } rh
- Выражения оценки переменной/атрибута модели: ${ ... }
- Вспомогательные функции: #numbers.formatDecimal(...)
Также этот фрагмент (X)HTML-кода может прекрасно отображаться браузером как прототип, вообще не подвергаясь обработке: это естественный шаблон .
Смотрите также
Рекомендации
- ^ «Thymeleaf 3.1: Что нового и как перейти - Thymeleaf» .
- ^ «Функции - Thymeleaf: механизм шаблонов Java XML/XHTML/HTML5» . Архивировано из оригинала 8 октября 2011 г. Проверено 16 октября 2011 г.Особенности Тимелеафа
Внешние ссылки