2012-06-05 35 views
4

我正在使用Myfaces 2.1.7和Primefaces将运行在WAS7中的JSF 1.2项目迁移到JSF2。如何让EL 2.2在WAS 7上工作(使用Myfaces和Primefaces)?

到目前为止,所有东西都或多或少地起作用,将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?

感谢您的阅读;)

回答

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。要安装它,只需将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> 
+2

非常感谢,它的工作......甚至更好,我不那么困惑,感谢你; – Lenn

+0

不客气。 – BalusC

+0

我试过这个,我仍然陷入困境。 :/ –

相关问题