Thymeleaf th: если выражение не оценивается как истинное

1

Я пытаюсь оценить выражение с двумя строками, его оценка также истинна, но при использовании в пределах 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. Довольно странное поведение.

Теги:
spring
spring-mvc
thymeleaf
templating

1 ответ

2
Лучший ответ

Я предполагаю, что if оценивается до th:with. Вы можете попробовать:

<th:block th:each="obj : ${list}" th:with="path=${obj.path}">
  <li  th:if="${path == cntx}">...</li>
</th:block>

Тем не менее, для меня это напечатало бы какое-то полезное исключение (например: путь переменной не найден).

  • 0
    Спасибо за совет. Работал как шарм. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню