JSF 1.2应用程序迁移到JSF 2.0

目前,我的Web应用程序基于以下库/框架/工具:

> Java 1.6
> JSF 1.2_07-b03-FCS
> Facelets 1.1.14
> Richfaces 3.3.2.GA
> EL-Functors 1.0.2
>春天2.5.2
> Tomcat服务器v5.5

一些其他信息:

> Spring负责管理JSF使用的所有bean(org.springframework.web.jsf.DelegatingVariableResolver在我的faces-config.xml文件中被定义为变量解析器).
> EL-Functors用作我的el-resolver以扩展表达式语言.
>我创建了许多自定义组件,其中一些只是Facelets组合,另一些是基于Java的组件(其中一些是扩展Richfaces组件).

我想尝试(主要是为了好奇,但如果这很好,为什么不真实?)将我的应用程序迁移到JSF 2.0.

问题1:为了使我的应用程序正常工作,我必须考虑哪些关键点?

我在这里谈论的只是一个有效的应用程序,仅此而已,仅此而已.

我知道我必须检查所有自定义组件,因为我将使用新版本的Richfaces(4.0),并查看它们是否正常工作.

问题2:利用JSF 2.0实现的第一步是什么?
我已经有的一些想法是:

>删除EL-Functors并使用Expression Language 2.2;
>让JSF管理bean,并使用@ManagedBean.或者可能切换到CDI库,例如Weld
>使用< f:ajax>而不是< a4j:支持>?

关于JavaEE6

我知道,一个好主意是完全转移到JavaEE6.我喜欢这样做,但由于某些原因我不能这样做.一个(坏)原因是我必须留在Tomcat服务器上.
但是,我可以添加新的第三方库以获得一些JavaEE6功能,例如EL 2.2 ……
所以请在你的答案中考虑这个方面.

问候.

最佳答案 由于Richfaces 4仍在开发中,您可能希望将Richfaces 3.3.3与JSF 2.0一起使用.

因此,您必须使用此处描述的Facelets 1.1.15

这意味着从a4j:支持切换到f:ajax将无法与基于Richfaces的组件一起使用,因此我建议坚持使用a4j:support.如果您决定在Richfaces 4可用时立即切换到Richfaces 4,这也将使迁移工作保持在较低水平.

由于您已经使用Spring来管理JSF-Beans,因此不需要使用JSF2的DI-Features.我坚持使用Spring,但考虑更新Spring 3.

除此之外,Weld还是值得一看的.

HTH

点赞