Оглавление
Что происходит, когда вы пишете в одном теге более одного атрибута th:*? Например:
Мы ожидаем, что th:each атрибут будет выполняться перед th:text так, чтобы мы получили желаемые результаты, но учитывая тот факт, что стандарты HTML/XML не имеют никакого значения для порядка атрибута в теге, в самих атрибутах должен быть установлен механизм приоритета, чтобы быть уверенным, что это будет работать так, как ожидалось.
Таким образом, все атрибуты Thymeleaf определяют числовое значение, которое устанавливает порядок, в котором они выполняются в теге. Этот порядок:
Этот механизм приоритета означает, что указанный выше фрагмент итерации даст точно такие же результаты, если позиция атрибута инвертирована (хотя она будет немного менее читаемой):
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>