2015-09-22 3 views
0

Я перебор списка и установив атрибут каждого divshiro:hasPermission как этогоThymeleaf Shiro диалект пользовательского выражение

<div th:each="element : ${elements}" shiro:hasPermission="${element.permission}"> 
    <span th:text="${element.name}"></span> 
</div> 

где ${element.permission} является строкой разрешения.

Диск не отображается, даже если пользователь имеет разрешение. Я попытался с помощью 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.

+0

сначала проверьте правильность отображения разрешений, например. sysout или отобразить их в браузере с помощью th: text = "$ {element.permision}. Возможно, они не отформатированы так, чтобы понять: может быть, вам нужно отформатировать его: shiro: hasPermission =" ' user: '+ $ {element.permission} ", поэтому он может выглядеть как" user: create " – Blejzer

+0

@Blejzer Я проверил выражение, используя th: text =" $ {element.permission} ". Это работает отлично. знаете ли, что siro: hasPermission может правильно оценить выражение $ {element.permission} – faizi

ответ

0

Я являюсь автором библиотеки thymeleaf-extras-shiro.

Версия 1.2.2-SNAPSHOT поддерживает выражения.

+0

@tbk Я использую версию thymeleaf-extras-shiro 1.0.0. Есть ли какое-либо решение без обновления до версии 1.2.2? – faizi

+0

@faizi Я боитесь, что это невозможно. Попробуйте обновить до 1.2.2 - изменений не происходит. – tbk

Смежные вопросы