【问题标题】:using JSF EL expression inside web.xml在 web.xml 中使用 JSF EL 表达式
【发布时间】:2013-09-02 09:04:55
【问题描述】:

我可以在 web.xml 中使用 EL 表达式吗? 像这样

Web.xml

<context-param>
        <param-name>primefaces.DIR</param-name>
        <param-value>#{userUtilityBacking.direction}</param-value>
</context-param>

和我的 JSF bean 一样

JSF 豆

@ManagedBean(name="userUtilityBacking")
@SessionScoped
public class UserUtilityBacking  implements Serializable {

     private static final long serialVersionUID = 1L;
    private String direction  ;   
// and public setters and getter 

会有用吗?

【问题讨论】:

    标签: jsf jakarta-ee jsf-2 el


    【解决方案1】:

    我可以在 web.xml 中使用 EL 表达式吗?

    不完全是这样。默认情况下,在应用程序启动期间解析 web.xml 时,servletcontainer 不会对上下文参数进行 EL 评估。但是,像 Ant 和 Maven 这样的构建工具和像 JBoss 这样的一些 servlet 容器(在设置特定的配置设置之后)支持使用类似于 EL 的 ${...} 语法在几个部署描述符 XML 文件中通过它们的名称来内联环境变量和/或 VM 参数,例如web.xmlejb-jar.xmlpersistence.xml。注意:因此不是您在 JSF EL 范围内声明的那些变量,例如托管 bean。


    会有用吗?

    仅当 PrimeFaces 将静态值 "#{userUtilityBacking.direction}" 设为 String 然后使用例如 Application#evaluateExpressionGet() 以编程方式在当前 EL 上下文中对其进行 EL 评估时,它才会起作用。但是,基于PrimeFaces 3.5 source code,它不会在任何地方这样做。看起来他们只为 4.x 实现了它。

    在您的特定情况下,您最好直接在 &lt;html&gt; 元素上指定方向以在文档范围内和/或在任意 HTML 或 JSF 组件的 dir 属性中应用它。

    <html dir="#{userUtilityBacking.direction}">
    

    【讨论】:

    • 您肯定是对的,但让我感到困惑的是我在 PrimeFaces 文档中发现的内容......" 使用 primefaces.DIR 全局设置来 rtl 指示 PrimeFaces RTL 感知组件以 RTL 模式呈现。参数值也可以是动态值的EL表达式",我不知道这是什么意思
    • 我已经为此code.google.com/p/primefaces/issues/…创建了一个功能请求
    猜你喜欢
    • 1970-01-01
    • 2017-07-18
    • 2013-03-20
    • 1970-01-01
    • 2015-01-22
    • 2011-06-24
    • 2014-06-21
    • 1970-01-01
    • 2016-07-24
    相关资源
    最近更新 更多