20 Приложение C: Синтаксис селектора разметки
Селекторы разметки Thymeleaf напрямую заимствованы из библиотеки анализатора Thymeleaf: AttoParser. Синтаксис этих селекторов очень похож на синтаксис селекторов в XPath, CSS и jQuery, что делает их удобными для большинства пользователей.Вы можете взглянуть
на полную ссылку См.синтаксис в документации AttoParser. Например, следующий селектор выберет каждый с содержимым класса в каждой позиции разметки (обратите внимание, что это не так лаконично, как могло бы быть, читайте дальше, чтобы узнать, почему):
Базовый синтаксис включает в себя:<div th:insert="mytemplate :: //div[@class='content']">.
</div>
- /Икс означает прямых дочерних элементов текущего узла с именем x
- //Икс означает дочерние элементы текущего узла с именем x на любой глубине
- х[@z="v"] означает элементы с именем x и атрибутом z со значением «v».
- x[@z1="v1" и @z2="v2"] означает элементы с именем x и атрибутами z1 и z2 со значениями «v1» и «v2» соответственно
- х[я] означает элемент с именем x, расположенный под номером i среди своих братьев и сестер
- х[@z="v"][я] означает элементы с именем x, атрибутом z со значением «v» и расположенные под номером i среди своих одноуровневых элементов, которые также соответствуют этому условию
- Икс точно эквивалентно //Икс (ищите элемент с именем или ссылкой x на любом уровне глубины, ссылка имеет атрибут th:ref или th:fragment)
- Селекторы также разрешены без имени элемента/ссылки, если они содержат спецификацию аргумента.
Таким образом, [@class='oneclass'] является допустимым селектором, который соответствует любым элементам (тегам) с атрибутом класса со значением " один класс "
- Кроме = (равно), применяются также другие операторы сравнения: != (Не равный), ^= (начинается с) и $= (заканчивается).
Например: x[@class^='раздел'] означает элементы с именем x и значением класса атрибута, которое начинается с раздела
- Атрибуты могут быть указаны начиная с @ (стиль XPath) и без (стиль jQuery).
Так, х[z='v'] эквивалент х[@z='v']
- Модификаторы с несколькими атрибутами можно комбинировать либо с и (стиль XPath) и путем объединения нескольких модификаторов (стиль jQuery).
Таким образом, x[@z1='v1' и @z2='v2'] на самом деле эквивалент x[@z1='v1'][@z2='v2'] (а также к x[z1='v1'][z2='v2'] )
- x.oneclass эквивалент х[класс='одинкласс']
- .
один класс эквивалент [класс = 'один класс']
- х#онид эквивалент x[id='oneid']
- #oneid эквивалент [id='oneid']
- х%oneref означает теги, имеющие атрибут й:ref="oneref" или й:фрагмент="oneref"
- Прямые селекторы и селекторы атрибутов можно комбинировать: a.external[@href^='https']
<div th:insert="mytemplate :: //div[@class='content']">.
</div>
Можно написать так:
<div th:insert="mytemplate :: div.content">.
</div>
Следуя другому примеру, выполните следующие действия:
<div th:replace="mytemplate :: myfrag">.
</div>
Будет искать фрагмент фрагмента th:fragment="myfrag" (или й: ссылка ссылки).
Но мы также будем искать теги с именем мояфраг , если они существовали (чего нет в HTML).
Обратите внимание на разницу: <div th:replace="mytemplate :: .
myfrag">.
</div>
.
который фактически будет искать любые элементы с класс="мифраг" не заботясь о подписях: th:fragment (или й: ссылка ).
Многозначное отображение классов Селекторы разметки понимают, что атрибут класса двусмысленный (многозначный), и поэтому позволяет использовать селекторы для этого атрибута, даже если элемент имеет несколько значений класса.
Например, дел.
два будет соответствовать <div class="one two three" />
Теги: #java #Thymeleaf #java
-
Взлом Игры Clocktower - The First Fear
19 Oct, 24 -
S.t.a.l.k.e.r Оффлайн
19 Oct, 24 -
Ребята, Я Никогда Не Уходил
19 Oct, 24