JSF 1.2应用迁移到JSF 2.0

5

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

  • 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(在我的faces-config.xml文件中,org.springframework.web.jsf.DelegatingVariableResolver被定义为variable-resolver)。
  • EL-Functors被用作我的el-resolver,以扩展表达式语言。
  • 我创建了许多自定义组件,其中一些只是Facelets组合,另一些是基于Java的组件(其中一些是扩展Richfaces组件)。

我想尝试(基本上出于好奇心,但如果这很好用,为什么不用于实际?)将我的应用程序迁移到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… 所以,请在您的答案中考虑这个方面。

问候。

2个回答

2
如果您计划继续使用Tomcat,那么升级到Java EE 6意味着您将要考虑Tomcat 7版本。
但是,如果您想要一个完整的Java EE 6服务器,那么GlassFish 3或JBoss 6是更好的选择。当您尝试执行某些操作(如CDI(Weld)或EJB 3)时,Tomcat可能会出现问题。
这只是我的个人意见。希望能有所帮助...

2

由于Richfaces 4仍在开发中,您可能希望使用与JSF 2.0兼容的Richfaces 3.3.3。因此,您必须像这里描述的那样使用Facelets 1.1.15 http://community.jboss.org/wiki/RichFaces333andJSF20

这意味着从a4j:support切换到f:ajax将无法与基于Richfaces的组件一起使用,因此建议坚持使用a4j:support。如果您决定尽快切换到可用的Richfaces 4,则这也将使迁移工作量较低。

由于您已经使用Spring来管理JSF-Beans,因此不需要使用JSF2的DI功能。我建议继续使用Spring,但考虑升级到Spring 3。

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

希望对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接