【发布时间】:2015-12-18 23:33:39
【问题描述】:
我正在遍历一个列表并像这样为每个div 设置一个shiro:hasPermission 属性
<div th:each="element : ${elements}" shiro:hasPermission="${element.permission}">
<span th:text="${element.name}"></span>
</div>
其中${element.permission} 是权限字符串。
即使用户有权限,也不会呈现 div。我试过像这样使用th:attr:
<div th:each="element : ${elements}" th:attr="shiro:hasPermission=${element.permission}">
<span th:text="${element.name}"></span>
</div>
还是不行。我认为shiro:hasPermission="${element.permission}" 的用法不正确。我该如何解决这个问题?
我正在使用 Spring MVC + Thymeleaf + Thymeleaf Shiro dialect。
【问题讨论】:
-
首先检查权限是否正确显示,例如使用 th:text="${element.permision} 将它们 sysout 或在浏览器中显示它们。它们可能没有以 shiro 理解的方式格式化:也许你需要格式化它:shiro:hasPermission="' user:'+${element.permission}" 所以它看起来像 "user:create"
-
@Blejzer 我已经使用 th:text="${element.permission}" 检查了表达式。这很好用。我需要知道 shiro:hasPermission 是否可以正确评估表达式 ${element.permission}
标签: spring-mvc thymeleaf shiro