Thymeleaf + Spring 安全性 -> #authentication 在 link 位置与另一个位置不工作
Thymeleaf + Spring Secucity -> #authentication not working in link location combined with another
我正在尝试在 link (@{}
) 中使用符号 ${#authentication.systemUser.tenant.url}
。当我尝试在文本位置 (${}
) 中做同样的事情时,这种用法对我有用。
我的代码:
文字位置:
<strong th:text="${#authentication.systemUser.name}" />
这是在屏幕上打印 Maciel Bombonato。
Link 位置:
<a th:href="@{/${#authentication.systemUser.tenant.url}/user}" >
<i class="fa fa-tachometer"></i>
<span th:text="#{user.dashboard}" />
</a>
这会创建 link 到 http://localhost:8080/${#authentication.systemUser.tenant.url}/user
,但我正在等待 http://localhost:8080/apolo/user
。
写完这个问题我做最后一个测试和工作。
我的解决方案如下。
首先创建一个div使用th:with创建一些变量并涉及links并且在这个th:with中将组成link .
<div th:with="dashboard=${'/'} + ${#authentication.systemUser.tenant.url} + ${'/user'},
profile=${'/'} + ${#authentication.systemUser.tenant.url} + ${'/user/view/'} + ${#authentication.systemUser.id}
" >
<a th:href="@{${dashboard}}" >
<i class="fa fa-tachometer"></i>
<span th:text="#{user.dashboard}" />
</a>
</div>
在这种情况下,我在DIV中声明了所有变量,然后在link中使用它。
现在生成的 link 是:http://localhost:8080/apolo/user
我认为这个问题与使用来自 a 的值构建 href url 有关
变量表达式。
您可以使用管道 |
执行文字替换 (doc)。
<a th:href="@{|/${#authentication.systemUser.tenant.url}/user|}" >
<i class="fa fa-tachometer"></i>
<span th:text="#{user.dashboard}" />
</a>
我正在尝试在 link (@{}
) 中使用符号 ${#authentication.systemUser.tenant.url}
。当我尝试在文本位置 (${}
) 中做同样的事情时,这种用法对我有用。
我的代码:
文字位置:
<strong th:text="${#authentication.systemUser.name}" />
这是在屏幕上打印 Maciel Bombonato。
Link 位置:
<a th:href="@{/${#authentication.systemUser.tenant.url}/user}" >
<i class="fa fa-tachometer"></i>
<span th:text="#{user.dashboard}" />
</a>
这会创建 link 到 http://localhost:8080/${#authentication.systemUser.tenant.url}/user
,但我正在等待 http://localhost:8080/apolo/user
。
写完这个问题我做最后一个测试和工作。
我的解决方案如下。
首先创建一个div使用th:with创建一些变量并涉及links并且在这个th:with中将组成link .
<div th:with="dashboard=${'/'} + ${#authentication.systemUser.tenant.url} + ${'/user'},
profile=${'/'} + ${#authentication.systemUser.tenant.url} + ${'/user/view/'} + ${#authentication.systemUser.id}
" >
<a th:href="@{${dashboard}}" >
<i class="fa fa-tachometer"></i>
<span th:text="#{user.dashboard}" />
</a>
</div>
在这种情况下,我在DIV中声明了所有变量,然后在link中使用它。
现在生成的 link 是:http://localhost:8080/apolo/user
我认为这个问题与使用来自 a 的值构建 href url 有关 变量表达式。
您可以使用管道 |
执行文字替换 (doc)。
<a th:href="@{|/${#authentication.systemUser.tenant.url}/user|}" >
<i class="fa fa-tachometer"></i>
<span th:text="#{user.dashboard}" />
</a>