4

我正在将一个在 WAS7 中运行的 JSF 1.2 项目迁移到带有 Myfaces 2.1.7 和 Primefaces 的 JSF2。

到目前为止,一切都或多或少正常工作,将 myfaces-bundle-2.1.7.jar 和 primefaces 3.3.RC1.jar 放入 WEB-INF/lib 并更改为类加载顺序。

现在,我正在尝试让 EL2.2 工作:相应的类是 Myfaces Impl 类的一部分(在 myfaces-bundle-2.1.7.jar 中,但使用了哪个特定配置?),还是我错过了一些特定的库添加到 /WEB-INF/lib ?

谢谢你读我;)

4

1 回答 1

6

EL 2.2 不是 JSF 2.0 的一部分。它是 Servlet 3.0 的一部分,而后者又是 Java EE 6 的一部分。但 WebSphere 7 是 Java EE 5 容器,而不是 Java EE 6 容器。JSF 2.0 是 Java EE 6 的一部分,但向后兼容 Servlet 2.5 / Java EE 5,这可能就是您的困惑所在。

如前所述,WebSphere 7 是一个 Servlet 2.5 容器,因此不随 EL 2.2 提供,而是随 EL 2.1 提供。最好的办法是安装一个 EL 2.1 实现,它支持与 EL 2.2 中相同的增强功能(使用参数调用方法)。只有一个:JBoss EL。要安装它,只需将jboss-el.jar放到 webapp 中/WEB-INF/lib,然后将以下上下文参数添加到您的web.xml,以告诉 MyFaces 使用它。

<context-param>     
    <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>
于 2012-06-05T23:42:20.317 回答