Thymeleaf 登录和注销可见性问题

Posted

技术标签:

【中文标题】Thymeleaf 登录和注销可见性问题【英文标题】:Thymeleaf Login and Logout Visibility Problem 【发布时间】:2020-06-20 18:49:52 【问题描述】:

我正在开发一个网站,并在此过程中使用 springboot 和 thymeleaf。问题是我在登录时似乎无法显示注销按钮。虽然我没有注销时显示了登录。我有两种类型的用户——用户和管理员。登录和注销应该适用于这两种类型的用户。下面是我在 html 中登录和注销的代码。我还附上了控制器中的内容。谢谢 menu.html 和 mycontroller.java

<a th:if="$userRole == 'null'">
     <button type="button" class="btn btn-dark m-2">Logout</button>
</a>
<a th:unless="$userRole == 'null'">
    <button type="button" class="btn btn-dark m-2">Login</button>
</a>




private void setUpNavBar(Model model) 
    String presentUserRole;
    if (userSession.getUser() == null) presentUserRole = "noUser";
    else presentUserRole = userSession.getUser().getRole();
    model.addAttribute("userRole",presentUserRole);
    System.out.println("setting up navigation bar:" + presentUserRole);

【问题讨论】:

【参考方案1】:

问题是 userRole 永远不会变成“null”。如果您遵循 setUpNavBar,则 userRole 是“noUser”或角色 (userSession.getUser().getRole())。

所以用“noUser”替换“null”。

【讨论】:

我现在要试试。谢谢@Robson

以上是关于Thymeleaf 登录和注销可见性问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring 安全性在 Thymeleaf 中的静态资源的可见性

更改 Blazor 菜单中导航项的可见性

flexbox 中的可见性:隐藏和可见性:折叠有啥区别?

IE10:“可见性:可见”在“可见性:隐藏”元素的伪元素之前

Flutter 中的不可见性、消失、可见性 ROW 和列

voliate怎么保证可见性