JSF 1.2应用程序迁移到JSF 2.0

时间:2010-11-18 09:26:44

标签: jsf

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

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

其他一些信息:

  • Spring负责管理JSF使用的所有bean(org.springframework.web.jsf.DelegatingVariableResolver在我的variable-resolver文件中定义为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:support>

关于JavaEE6

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

问候。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

HTH

答案 1 :(得分:1)

如果您打算继续使用Tomcat,那么转移到Java EE 6意味着您将会看到Tomcat版本7。

但是如果你想要一个成熟的Java EE 6服务器,那么GlassFish 3或JBoss 6是一个更好的选择。当你尝试做某些事情,比如CDI(Weld)或EJB 3时,Tomcat可能会很糟糕。

我的两分钱值得。希望它有所帮助...