Как стать автором
Обновить

Учебник Thymeleaf: Глава 10. Приоритет атрибутов

Время на прочтение1 мин
Количество просмотров3K
Оглавление

10 Приоритет атрибутов


Что происходит, когда вы пишете в одном теге более одного атрибута th:*? Например:

<ul>
  <li th:each="item : ${items}" th:text="${item.description}">Item description here...</li>
</ul>

Мы ожидаем, что th:each атрибут будет выполняться перед th:text так, чтобы мы получили желаемые результаты, но учитывая тот факт, что стандарты HTML/XML не имеют никакого значения для порядка атрибута в теге, в самих атрибутах должен быть установлен механизм приоритета, чтобы быть уверенным, что это будет работать так, как ожидалось.

Таким образом, все атрибуты Thymeleaf определяют числовое значение, которое устанавливает порядок, в котором они выполняются в теге. Этот порядок:

Порядок Функциональность Аттрибуты
1 Включение фрагментов th:insert
th:replace
2 Итерация фрагментов th:each
3 Условное выполнение th:if
th:unless
th:switch
th:case
4 Определение локальной переменной th:object
th:with
5 Основная модификация атрибута th:attr
th:attrprepend
th:attrappend
6 Специфическая модификация атрибута th:value
th:href
th:src
...
7 Текст (tag body модификация) th:text
th:utext
8 Определение фрагмента th:fragment
9 Удаление фрагмента th:remove

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

<ul>
  <li th:text="${item.description}" th:each="item : ${items}">Item description here...</li>
</ul>
Теги:
Хабы:
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Публикации

Истории

Работа

Java разработчик
333 вакансии

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн