Учебник Thymeleaf: Глава 10. Приоритет атрибутов
Оглавление
10 Приоритет атрибутов
Что происходит, когда вы пишете в одном теге более одного атрибута th:*? Например:
- Item description here...
Мы ожидаем, что 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 |
Этот механизм приоритета означает, что указанный выше фрагмент итерации даст точно такие же результаты, если позиция атрибута инвертирована (хотя она будет немного менее читаемой):
- Item description here...