Учебное Пособие По Thymeleaf: Глава 1: Введение

Оглавление



1 Введение в Тимелеаф



1.1 Что такое Тимелеаф?

Тимелиф — это современный серверный механизм шаблонов Java для веб- и оффлайн-сред, способный обрабатывать HTML, XML, JavaScript, CSS и даже простой текст. Основная цель Thymeleaf — создать элегантный и удобный способ создания шаблонов.

Для достижения этой цели Thymeleaf использует концепцию Natural Templates для внедрения своей логики в файлы шаблонов таким образом, чтобы шаблон не влиял на отображение дизайна прототипа.

Это улучшает командное взаимодействие и сокращает разрыв между командами дизайнеров и программистов.

Thymeleaf также с самого начала разрабатывался с учетом веб-стандартов, особенно HTML5 , что позволяет создавать шаблоны, полностью соответствующие стандартам.



1.2 Какие типы шаблонов поддерживает Thymeleaf?

«Из коробки» Thymeleaf позволяет работать с шестью типами шаблонов, каждый из которых называется «Режим шаблона»: HTML XML ТЕКСТ ЯВАСКРИПТ CSS СЫРОЙ Итого: два формата разметки (HTML и XML), три текстовых формата (TEXT, JAVASCRIPT и CSS) и простой формат (RAW).

HTML формат подразумевает стандарт HTML, включая HTML5, HTML 4 и XHTML. Проверка не выполняется, и код/структура исходного шаблона будет соблюдаться в максимально возможной степени.

Формат шаблона XML позволит вам создать шаблон XML. В этом случае ожидается, что код будет правильно сформирован, иначе синтаксический анализатор выдаст исключения без закрытых тегов, без кавычек атрибутов и т. д. Обратите внимание, что проверка DTD или XML-схемы выполняться не будет. Режим шаблона ТЕКСТ позволяет использовать специальный синтаксис для шаблонов без разметки.

Примерами таких шаблонов могут быть текстовые письма или шаблоны документов.

Обратите внимание, что шаблоны HTML или XML также могут обрабатываться как ТЕКСТ.

В этом случае разметка не анализируется, и каждый тег, DOCTYPE, комментарий и т. д. будет обрабатываться как обычный текст. Режим шаблона ЯВАСКРИПТ позволит обрабатывать файлы JavaScript в приложении Thymeleaf. Это означает возможность использовать данные модели внутри файлов JavaScript так же, как и в файлах HTML, но с интеграцией, специфичной для JavaScript, такой как специализированное экранирование или сценарии.

Режим шаблона JAVASCRIPT считается текстовым режимом и поэтому использует тот же специальный синтаксис, что и режим шаблона TEXT. Режим шаблона CSS позволяет обрабатывать файлы CSS, участвующие в приложении Thymeleaf. Как и режим JAVASCRIPT, режим шаблона CSS также является текстовым режимом и использует специальный синтаксис обработки из режима шаблона TEXT. Режим шаблона СЫРОЙ он просто не будет обрабатывать шаблоны.

Он предназначен для вставки нетронутых ресурсов (файлов, ответов на URL-адреса и т. д.) в обрабатываемые шаблоны.

Например, в шаблоны приложений можно включать внешние неконтролируемые ресурсы HTML, зная, что любой код Thymeleaf, включающий эти ресурсы, не будет выполнен.



1.3 Диалекты: стандартный диалект

Тимелиф — это легко расширяемый движок (фактически его можно назвать платформой шаблонов), который позволяет вам определять и настраивать способ обработки ваших шаблонов вплоть до высокого уровня детализации.

Объект, который применяет некоторую логику к артефакту разметки (тегу, тексту, комментарию), называется процессором, а совокупность этих процессоров — плюс, возможно, некоторых дополнительных артефактов — и составляет диалект. Базовая библиотека Thymeleaf «из коробки» предоставляет диалект под названием стандартный диалект , чего должно быть достаточно для большинства пользователей.

В этом уроке рассматривается стандартный диалект. Каждый атрибут и синтаксис, о которых вы узнаете на следующих страницах, определяется этим диалектом, даже если он не упоминается явно.

Конечно, пользователи могут создавать свои собственные диалекты (даже расширяя стандартный), если они хотят определить собственную логику обработки, используя преимущества расширенных возможностей библиотеки.

Thymeleaf также можно настроить для одновременной обработки нескольких диалектов.

Официальные пакеты интеграции «thymeleaf-spring3» и «thymeleaf-spring4» определяют диалект под названием « SpringСтандартный диалект ", который по сути аналогичен стандартному диалекту, но с небольшими изменениями для более эффективного использования некоторых функций Spring Framework (таких как Spring Expression Language (SPEL) или SpringEL вместо OGNL).

Итак, если вы являетесь Spring MVC пользователь, вы не тратите свое время впустую, поскольку почти все, что вы узнаете здесь, будет полезно в ваших приложениях Spring. Большинство стандартных процессоров диалектов являются процессорами атрибутов.

Это позволяет браузерам корректно отображать HTML-шаблоны даже без их обработки, поскольку они просто игнорируют дополнительные атрибуты.

Например, JSP, использующий библиотеки тегов, может включать в себя фрагмент кода, который не может быть отображен непосредственно браузером, например:

  
   

<form:inputText name="userName" value="${user.name}" />

.

Стандартный диалект Thymeleaf позволит нам добиться функциональности с помощью:

<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />

Это не только будет правильно отображаться браузерами, но также позволит нам (необязательно) присвоить ему атрибут значения («Джеймс Маррот»), который будет отображаться, когда прототип будет статически открыт в браузере и который будет заменен на значение, полученное в результате выполнения ${user.name} во время обработки шаблона.

Это помогает вашему дизайнеру и разработчику работать с одним и тем же файлом шаблона и сокращает усилия, необходимые для преобразования статического прототипа в рабочий файл шаблона.

Возможность сделать это — функция Natural Templating. Продолжение.

Глава 2: Виртуальный продуктовый магазин Good Thymes Теги: #java #Thymeleaf #java

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.