4

我可以在 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 

它会起作用吗?

4

1 回答 1

5

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

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


它会起作用吗?

仅当 PrimeFaces 获取静态值"#{userUtilityBacking.direction}"asString然后在当前 EL 上下文中以编程方式 EL 评估它时,它才会起作用,例如Application#evaluateExpressionGet(). 但是,基于PrimeFaces 3.5 源代码,它在任何地方都没有这样做。看起来他们只为 4.x 实现了它。

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

<html dir="#{userUtilityBacking.direction}">
于 2013-08-29T19:48:17.503 回答