如何通过表达式语言访问JSF隐式对象?
例如,如果我想确定当前委托人与哪些角色相关联,我该怎么办呢?
答案 0 :(得分:4)
如果您在JSP上使用JSF,那么您可以像在“普通JSP EL”中那样使用它。
#{pageContext.request}
如果您在Facelets上使用JSF,那么您可以像在“普通JSP EL”中那样省略pageContext
部分。
#{request}
无论哪种方式,它都会返回HttpServletRequest
对象。
但是,确定用户角色的唯一方法是isUserInRole(String role)
方法。您不能将参数传递给标准EL中的方法。但是,当您用JBoss EL替换标准EL时,可以这样做。
#{request.isUserInRole(role)}
要安装JBoss EL,只需将jboss-el.jar放入/WEB-INF/lib
并将以下内容添加到web.xml
,假设您使用的是Mojarra:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>