我想禁用特定链接但保留其文本,使其显示为已禁用。我试图放置一个:在锚标签内删除一定条件。我在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')"
,它运行正常。我想避免这种方法,因为它完全删除了文本和链接。是否有其他方法可以禁用链接并使用ThymeLeaf保留文本?
(我使用的是ThymeLeaf 3.0)
答案 0 :(得分:1)
在表达式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' : '#'}"