Я пытаюсь оценить выражение с двумя строками, его оценка также истинна, но при использовании в пределах th: если он не работает должным образом.
ниже код - это то, что я пытаюсь
<div th:with="cntx=${#httpServletRequest.getRequestURI()}">
<li th:each="obj : ${list}" th:with="path=${obj.path}"
th:if="${path == cntx}">
<span th:text="${obj.title}"></span>
</li>
</div>
Контекст для вышеуказанного кода,
У меня есть список объектов, которые содержат ссылку, которая должна отображаться в одном из объектов. Я пытаюсь выполнить строковое равенство с th: if, но выражение здесь $ {path == cntx} по какой-то причине не работает и не отображается на конечной отображаемой странице.
Я даже проверил значения пути и URI, равные ie/test для пути и /test для cntx, оценивая true, если я распечатаю его с помощью th: text. Довольно странное поведение.
Я предполагаю, что if оценивается до th:with
. Вы можете попробовать:
<th:block th:each="obj : ${list}" th:with="path=${obj.path}">
<li th:if="${path == cntx}">...</li>
</th:block>
Тем не менее, для меня это напечатало бы какое-то полезное исключение (например: путь переменной не найден).