【问题标题】:JSF 1.2 application migration to JSF 2.0JSF 1.2 应用程序迁移到 JSF 2.0
【发布时间】:2011-05-11 22:15:21
【问题描述】:

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

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

我想尝试(主要是出于好奇,但如果效果很好,为什么不real?)将我的应用程序迁移到 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... 因此,请在您的回答中考虑这一方面。

问候。

【问题讨论】:

    标签: jsf


    【解决方案1】:

    由于 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 绝对值得一看。

    HTH

    【讨论】:

      【解决方案2】:

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

      但如果您想要一个成熟的 Java EE 6 服务器,那么 GlassFish 3 或 JBoss 6 是更好的选择。当您尝试执行 CDI(焊接)或 EJB 3 之类的某些事情时,Tomcat 可能会出现问题。

      只值我的两美分。希望对你有帮助...

      【讨论】:

        猜你喜欢
        • 2015-10-17
        • 2013-01-27
        • 2011-10-23
        • 2014-06-11
        • 2011-06-24
        • 2013-11-19
        • 2011-09-03
        相关资源
        最近更新 更多