【问题标题】:spring boot thymleaf i am trying to use conditional if in tymeleaf and tie it to a controller class to return true or false no pojo neededspring boot thymeleaf 我试图在 thymeleaf 中使用条件 if 并将其绑定到控制器类以返回 true 或 false 不需要 pojo
【发布时间】:2026-01-13 04:15:01
【问题描述】:

我有一个导航栏,我将其用作模板。请参阅 pic

如果我在任何选项卡上,那么我希望首页显示。但是,如果我在主页上,我不希望主页选项卡显示其冗余。我似乎无法弄清楚如何编写 thymleaf 代码..

我有类似的东西,第一行是我有兴趣修复的...你能帮忙处理控制器部分吗?我相信我可以在每个方法调用中做一个 model.addAttribute 行并将 isActive 设置为true 除了 home 方法,我可以将 isActive 设置为 false ...谢谢

li th:text="${isActive} ?'Home :"

<li th:text="${isActive} ?   '<a th:href="@{/}">Home</a>   : "            </li>
        <li><a th:href="@{/about}">About</a></li>
        <li class="auctions"><a href="#">Auctions&nbsp;<i class="fas fa-caret-down"></i></a>
            <ul>
                <li><a href="#bus4sale">Current Auctions</a></li>

                <li><a href="#">Register</a></li>


            </ul>
        </li>

        <li><a th:href="@{/contact}">Contact</a></li>
        <li><a th:href="@{/locations}">Locations</a></li>






          

【问题讨论】:

  • 对于 Thymeleaf 部分,使用 th:if - 类似这样的:&lt;li th:if="${isActive} == true"&gt;&lt;a th:href="@{/}"&gt;Home&lt;/a&gt;&lt;/li&gt;
  • 对于控制器,您需要编辑您的问题并显示代码的相关部分 - 但通常我希望您需要这样的内容:model.addAttribute("isActive", Boolean.TRUE - 如果它是主页,并且Boolean.FALSE 否则。

标签: spring thymeleaf


【解决方案1】:

你可以在控制器中使用它:

model.addAttribute("isActive",true);

并在 html 代码中使用它:

<li th:if="${isActive == null || !isActive}"><a th:href="@{/}">Home</a></li>

阅读更多关于 Conditionals in Thymeleafsimple conditionals if and unless

【讨论】: