Вопрос о языке выражений JSF (EL) - PullRequest
4 голосов
/ 09 февраля 2011

У меня есть пункт меню, который я хочу показать / скрыть, только если у пользователя есть определенные роли.

Я использую атрибут Rendered для этого, но я застрял на чем-то. Это работает ...

rendered="#{loginHandler.hasStaffRole}"

... но это не так ...

rendered="#{loginHandler.hasStaffRole or loginHandler.hasInstructorRole or loginHandler.hasVolunteerRole}"

Ошибка, которую я получаю в Eclipse для этой проблемы:

"невозможно применить операторы выражений к привязкам методов"

Есть идеи, как мне это исправить?

Ответы [ 2 ]

8 голосов
/ 09 февраля 2011

Отвечая на мой собственный вопрос. Проблема заключалась в том, что метод LoginHandler.hasStaffRole () должен был быть сформулирован как LoginHandler.isHasStaffRole (), чтобы быть распознанным как свойство. (В конце концов я изменил его на .isUserHasStaffRole.)

Спасибо.

1 голос
/ 10 февраля 2015

У меня была та же проблема: rendered="#{user.canEdit or user.isRole('ROLE_1', 'ROLE_2')}"

"Решение" для моего Eclipse 4.3 состояло в том, чтобы изменить аргументы: rendered="#{user.isRole('ROLE_1', 'ROLE_2') or user.canEdit}"

Добавление скобок не помогло.Ваш пробег может отличаться.

...