Thymeleaf 条件类附加不起作用

Posted

技术标签:

【中文标题】Thymeleaf 条件类附加不起作用【英文标题】:Thymeleaf conditional classappend not working 【发布时间】:2020-11-29 17:12:30 【问题描述】:

我的问题与this有关。

我有以下几点:

<div class="container">
<div class="wrapper">
<div class="arrow-steps clearfix">
<div th:each="caseStep : $getAppCaseStepList"
                                        th:class="arbitrary"
                                        th:classappend="$caseStep.casestepname == '$appCaseCurrentStep' ? 'step current' : 'step'"
                                        th:text="$caseStep.casestepname">
</div>
</div>
</div>
</div>

$appCaseCurrentStep 是一个模型属性(一个字符串),我在控制器方法中通过 GET 发送它。

但不知何故,我无法在这种情况下为元素设置“步骤当前”类:

$caseStep.casestepname == '$appCaseCurrentStep'

我正在尝试在我的条件为真的情况下设置/附加“当前步骤”(字符串比较)。我在这里遗漏了什么或做错了什么?

【问题讨论】:

'$appCaseCurrentStep' 表示字符串$appCaseCurrentStep 当我使用$appCaseCurrentStep 时会抛出异常:there is still more data in the expression: 'lcurly()' 如果你试试== appCaseCurrentStep? 大声笑.. 当您对此发表评论时,我正在自己输入答案。是的,你是对的.. 解决了它。 !谢谢 Chrylis。 $ 标识整个表达式,因此在其中您无需重新启动“新”表达式。 【参考方案1】:

找到它here。 !

原因:表达式 $... 内不应有额外的 。

解决方案:以下表达式对我有用:

<div th:each="caseStep : $getAppCaseStepList"
                                        th:class="asdfstep"
                                        th:classappend="$caseStep.casestepname == appCaseCurrentStep ? 'step current' : 'step'"
                                        th:text="$caseStep.casestepname"></div>

【讨论】:

以上是关于Thymeleaf 条件类附加不起作用的主要内容,如果未能解决你的问题,请参考以下文章

验证消息在 Thymeleaf 中不起作用

Spring 安全性和 Thymeleaf 不起作用

thymeleaf.extras.springsecurity4 sec:authorize 不起作用

带引号的Thymeleaf内联javascript不起作用

使用 Spring Security 的 Thymeleaf 授权不起作用[重复]

Thymeleaf spring 安全方言根本不起作用