Thymeleaf th:如果表达不评估真实

时间:2014-06-02 08:53:39

标签: java spring spring-mvc templating thymeleaf

我正在尝试用两个字符串来评估一个表达式,它的评估结果为true,但是当它在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值,即cntx的路径和/ test的测试,如果我使用th:text打印出来,则评估为true。非常奇怪的行为。

1 个答案:

答案 0 :(得分:2)

我的猜测是在th:with之前评估if。你可以尝试:

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

然而,对我来说,它会打印某种有用的异常(例如:找不到变量路径)。