Thymeleaf 将#locale 表达式对象与字符串进行比较

Thymeleaf compare #locale expression object with string

我想根据使用表达式对象#locale 的上下文语言环境设置 th:class 属性。

我试过了

th:class="${#locale}=='en'?'active':''"
th:class="${#locale=='en'}?'active':''"

它们的结果都是错误的,但是当我用 th:text="${#locale} 打印它时,我得到了正确的语言环境代码 (en,es)。

知道如何将#locale 对象与语言环境代码进行比较吗?

这个问题我以前跟 thymeleaf 的人说的。

您需要先解析 #locale,然后再将其与 "en" 进行比较。 您可以在要首先解决的表达式的开头和结尾添加 2 个下划线。在你的情况下会是这样的:

th:call="$({__#locale__}=='en'?'active':'')"

基于 posted by David_Garcia,我可以这样解决我的问题:

th:class="__${#locale}__=='en'?'active':''

我是这样用的

th:text="${#locale.toString()}=='in'?'active':'inactive'"