将JSF 1.2应用程序迁移到JSF 2.0

Rom*_*las 5 jsf

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

  • Java 1.6
  • JSF 1.2_07-b03-FCS
  • 小面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定义为)。variable-resolverfaces-config.xml
  • EL-Functors用作my el-resolver来扩展表达语言。
  • 我创建了许多自定义组件,其中一些只是Facelets组成,其他是基于Java的组件(其中有些是Richrichs组件的扩展)。

我想尝试(本质上是出于好奇,但是如果这很好,为什么不真正呢?)将我的应用程序迁移到JSF 2.0。

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

我在这里谈论的只是拥有一个正在运行的应用程序,仅此而已,仅此而已。

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

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

  • 删除EL-Functors并使用表达语言2.2;
  • 让JSF管理Bean,并使用@ManagedBean。还是切换到CDI库(例如Weld)
  • <f:ajax>代替<a4j:support>

关于JavaEE6

我知道,一个好主意是完全迁移到JavaEE6。我很喜欢这样做,但是由于某些原因,我不能那样做。一个(不好的)原因是我必须留在Tomcat服务器上。但是,我可以添加新的第三方库以具有某些JavaEE6功能,例如EL 2.2...。因此,请在回答中考虑这一方面。

问候。

tas*_*sel 2

由于 Richfaces 4 仍在开发中,您可能希望将 Richfaces 3.3.3 与 JSF 2.0 一起使用。因此,您必须按照此处所述使用 Facelets 1.1.15 http://community.jboss.org/wiki/RichFaces333andJSF20

这意味着从 a4j:support 切换到 f:ajax 不适用于基于 Richfaces 的组件,因此我建议坚持使用 a4j:support。如果您决定在 Richfaces 4 可用后立即切换到它,这也将降低迁移工作量。

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

除此之外,Weld 绝对值得一看。

华泰