【问题标题】:Expression language implicit objects表达式语言隐含对象
【发布时间】:2010-07-02 21:36:04
【问题描述】:

如何通过表达式语言访问 JSF 隐式对象?

例如,如果我想确定当前委托人与哪些角色相关联,我该怎么做?

【问题讨论】:

    标签: jsf el


    【解决方案1】:

    如果您在 JSP 上使用 JSF,那么您可以像在“plain JSP EL”中那样做。

    #{pageContext.request}
    

    如果您在 Facelets 上使用 JSF,那么您可以像在“plain JSP EL”中那样省略pageContext 部分。

    #{request}
    

    无论哪种方式,它都会返回HttpServletRequest 对象。

    但是,确定用户角色的唯一方法是isUserInRole(String role) 方法。您不能将参数传递给标准 EL 中的方法。但是,当您将标准 EL 替换为 JBoss 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>
    

    【讨论】:

    • BalusC,感谢您的帮助。我刚刚升级到 Tomcat 7,它更新了对 EL 的支持。我要试一试,看看它是否有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多