#thymeleaf
#thymeleaf
Вопрос:
<p th:with="firstName1='James1'">
<p>Upper</p><p th:text="${firstName1}"></p>
</p>
<p th:with="df='today'">
Today is: <span th:text="${df}">13 February 2011</span>
Не могли бы вы сказать мне, в чем разница между двумя разделами кода. Для меня они кажутся идентичными. Но есть некоторая разница, поскольку результаты отличаются.
Ответ №1:
Хорошо, я никогда не сталкивался с этим раньше… но похоже, что Thymeleaf применяет правило, согласно которому Any <p> (or other block-level element) will implicitly close any open <p>.
это работает, например:
<div th:with="firstName1='James1'">
<p>Upper</p>
<p th:text="${firstName1}"></p>
</div>
<p th:with="df='today'">
Today is: <span th:text="${df}">13 February 2011</span>
</p>
В вашем примере firstName1
переменная находится вне области видимости, потому что анализатор обрабатывает ваш HTML таким образом (так firstName1
считается null
):
<p th:with="firstName1='James1'"></p>
<p>Upper</p>
<p th:text="${firstName1}"></p>
Комментарии:
1. Ну, я так не думаю. Например, это не woking: <p th:with=»firstName1=’James1′»> <p>Upper</p> <p th:text=»${firstName1}»></p> </p> Это ваш пример, но с p. Проблема, похоже, связана с блоками внутри встроенных тегов.
2. Я только что сказал, что если вы используете a
<p>
внутри a<p>
, это не сработает, lol. Вы только что сделали то же самое снова. Если у вас есть a<p>
внутри a<p>
, это не сработает. Если вы используете a<div>
или a<th:block>
в качестве контейнера, это будет работать.