JSF表达式语言(EL)问题

时间:2011-02-09 16:36:33

标签: jsf el

我有一个菜单项,只有在用户具有某些角色时才能显示/隐藏。

我正在使用渲染属性,但我坚持了一些东西。这有效......

rendered="#{loginHandler.hasStaffRole}"

......但这不是......

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

我在Eclipse中遇到的问题是:

“无法将表达式运算符应用于方法绑定”

知道我应该如何解决这个问题吗?

2 个答案:

答案 0 :(得分:8)

回答我自己的问题。问题是LoginHandler.hasStaffRole()方法需要使用LoginHandler.isHasStaffRole()来识别为属性。 (最后我将其改为.isUserHasStaffRole。)

感谢。

答案 1 :(得分:1)

我有同样的问题: rendered="#{user.canEdit or user.isRole('ROLE_1', 'ROLE_2')}"

Eclipse 4.3的“解决方案”是反转参数:rendered="#{user.isRole('ROLE_1', 'ROLE_2') or user.canEdit}"

添加括号并没有治愈它。 您的里程可能会有所不同。