我可以在web.xml中使用EL表达式吗? 喜欢这个
Web.xml中
<context-param>
<param-name>primefaces.DIR</param-name>
<param-value>#{userUtilityBacking.direction}</param-value>
</context-param>
和我的JSF bean一样
JSF bean
@ManagedBean(name="userUtilityBacking")
@SessionScoped
public class UserUtilityBacking implements Serializable {
private static final long serialVersionUID = 1L;
private String direction ;
// and public setters and getter
它会起作用吗?
答案 0 :(得分:5)
我可以在web.xml中使用EL表达式吗?
不完全是这样。默认情况下,在应用程序启动期间解析web.xml
时,servletcontainer不会EL-评估上下文参数。但是,像Ant和Maven这样的构建工具和一些像JBoss这样的servlet容器(在设置特定的配置设置之后)支持使用类似于EL的${...}
语法在几个部署描述符XML文件中按名称内联环境变量和/或VM参数例如web.xml
,ejb-jar.xml
和persistence.xml
。注意:因此不那些您在JSF EL范围内声明的变量,例如托管bean。
会起作用吗?
仅当PrimeFaces获取静态值"#{userUtilityBacking.direction}"
为String
,然后使用例如Application#evaluateExpressionGet()
以编程方式EL评估它在当前EL上下文中时,它才有效。但是,基于PrimeFaces 3.5 source code,它并没有在任何地方这样做。看起来他们只为4.x实现了它。
在您的特定情况下,您最好直接在<html>
元素上指定方向,以在文档范围内和/或在任意HTML或JSF组件的dir
属性中应用它。
<html dir="#{userUtilityBacking.direction}">