2011-02-09 6 views
4

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

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

rendered="#{loginHandler.hasStaffRole}" 

... но это не ...

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

Я получаю ошибку в Eclipse, для задачи один является:

«не могут применять операторы выражения к методам «

Любая идея, как я должен это исправить?

ответ

8

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

Спасибо.

1

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

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

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