【问题标题】:Thymeleaf compare #locale expression object with stringThymeleaf 将#locale 表达式对象与字符串进行比较
【发布时间】:2015-08-09 15:16:55
【问题描述】:

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

我试过了

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

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

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

【问题讨论】:

    标签: conditional locale thymeleaf spring-el


    【解决方案1】:

    根据David_Garcia 发布的answer,我可以这样解决我的问题:

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

    【讨论】:

      【解决方案2】:

      这是我前段时间告诉百里香的人的一个问题。

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

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

      【讨论】:

      • 您首先解决表达式是正确的,但是您指出的方式对我不起作用。我改用了这个:th:class="__${#locale}__=='en'?'active':'',它奏效了!谢谢!
      【解决方案3】:

      我是这样用的

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-07
        • 2013-02-12
        • 1970-01-01
        相关资源
        最近更新 更多