th:remove 内的 hasRole() 不工作
hasRole() within th:remove is not working
我想禁用特定的 link 但保留其文本,使其看起来像是被禁用了。我试图在锚标记内放置一个具有特定条件的 th:remove。我在 ThymeLeaf 教程页面上找到了这个:
<a href="/something" th:remove="${condition}? tag">Link text not to be removed</a>
基于此,我尝试这样做:
<li>
<a th:href="@{/config/mod/}"
th:remove="${#authorization.expression('hasRole(''VIEW_MODULE_STATUS'')')}? tag">
<i class="fa fa-gear"></i> [[#{webadmin.view.config.module.title.short}]]
</a>
</li>
其中 VIEW_MODULE_STATUS 是角色。该条件似乎不工作,我不明白为什么。
仅供参考:我在锚标记中使用了 sec:authorize="hasRole('VIEW_MODULE_STATUS')"
,它工作正常。我想避免这种方法,因为它完全删除了文本和 link。是否有任何其他方法可以禁用 link 并使用 ThymeLeaf 保留文本?
(我正在使用 ThymeLeaf 3.0)
表达式 th:remove="${#authorization.expression('hasRole(''VIEW_MODULE_STATUS'')')}? tag"
中使用的三元运算符有误
三元运算符的形式为 condition? 'true' : 'false'
。所以你必须更新你的表达。然后你不能禁用一个 <a>
标签,你唯一能做的就是更新它的 href
属性为 #
或 javascript:void(0);
这样它就没有任何动作。您可以如下所示进行操作:
th:href="${#authorization.expression('hasRole(''VIEW_MODULE_STATUS'')') ? '/something' : '#'}"
我想禁用特定的 link 但保留其文本,使其看起来像是被禁用了。我试图在锚标记内放置一个具有特定条件的 th:remove。我在 ThymeLeaf 教程页面上找到了这个:
<a href="/something" th:remove="${condition}? tag">Link text not to be removed</a>
基于此,我尝试这样做:
<li>
<a th:href="@{/config/mod/}"
th:remove="${#authorization.expression('hasRole(''VIEW_MODULE_STATUS'')')}? tag">
<i class="fa fa-gear"></i> [[#{webadmin.view.config.module.title.short}]]
</a>
</li>
其中 VIEW_MODULE_STATUS 是角色。该条件似乎不工作,我不明白为什么。
仅供参考:我在锚标记中使用了 sec:authorize="hasRole('VIEW_MODULE_STATUS')"
,它工作正常。我想避免这种方法,因为它完全删除了文本和 link。是否有任何其他方法可以禁用 link 并使用 ThymeLeaf 保留文本?
(我正在使用 ThymeLeaf 3.0)
表达式 th:remove="${#authorization.expression('hasRole(''VIEW_MODULE_STATUS'')')}? tag"
三元运算符的形式为 condition? 'true' : 'false'
。所以你必须更新你的表达。然后你不能禁用一个 <a>
标签,你唯一能做的就是更新它的 href
属性为 #
或 javascript:void(0);
这样它就没有任何动作。您可以如下所示进行操作:
th:href="${#authorization.expression('hasRole(''VIEW_MODULE_STATUS'')') ? '/something' : '#'}"