如何让EL 2.2在WAS 7上工作(使用Myfaces和Primefaces)?

Len*_*enn 4 el myfaces primefaces jsf-2

我正在使用Myfaces 2.1.7和Primefaces将运行在WAS7中的JSF 1.2项目迁移到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?

谢谢你读我;)

Bal*_*usC 6

EL 2.2不是JSF 2.0的一部分.它是Servlet 3.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.要安装它,只需在webapp中删除jboss-el.jar/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>
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,它的工作......甚至更好,我对此不那么感到困惑,多亏了你;) (2认同)