将 MyFaces 用于 Oracle JDeveloper 10g (10.1.3) 预览版

作者:Jonas Jacobi,甲骨文公司
2005 年 2 月
修订版 1.0

使用 MyFaces 实施和组件

此方法文档讲述了如何将 MyFaces 实施和 MyFaces 自定义组件用于 Oracle JDeveloper 10g (10.1.3) 预览版和 ADF Faces。此方法文档分为了两个部分 - 一部分解释了如何在 Oracle JDeveloper 10g (10.1.3) 中安装 MyFaces 自定义组件,第二步分讲述了如何启动 Oracle ADF Faces 组件,并使其与 MyFaces 实施一起运行。要获得更多信息和方法文档,请参阅 Oracle 技术网 (OTN) 上的 JDeveloper 页面

前提条件
将 MyFaces 自定义组件用于 JDeveloper
将 ADF Faces 组件用于 MyFaces
更多信息

前提条件

为了按照此方法文档的说明进行操作,您需要 Oracle JDeveloper 10g (10.1.3) 开发人员预览版和 ADF Faces,并且能够访问 Internet。

将 MyFaces 自定义组件用于 Oracle JDeveloper 10g (10.1.3) 开发人员预览版

MyFaces 是一个开放源代码项目,由 Apache 基金会资助。MyFaces 是 Sun 提供的 JSF 引用实施 (RI) 的一个备用 JavaServer Faces (JSF) 实施。大多数情况下,开发人员都觉得这些工具提供的 JSF 实施的使用是令人满意的。Oracle JDeveloper 10.1.3 开发人员预览版内置了对于 Sun 引用实施的支持。在 JDeveloper 10.1.3 开发人员预览版中,开发人员受到了一些限制,他们不能使用另一个实施(如 MyFaces)来替换所提供的 JSF 实施。在 JDeveloper 10.1.3 的生产版本中,开发人员则能够替换提供的默认 RI,而使用他们选择的 JSF 实施。

下面的这些步骤讲述了如何对 Oracle JDeveloper 10.1.3 开发人员预览版进行设置,以便同时使用包含自定义 JSF 组件集的 MyFaces 扩展库和该 Sun RI:

  1. 首先,如果尚未安装的话,请先下载 JDeveloper 10g (10.1.3) 开发人员预览版。
  2. 然后,从 MyFaces 站点或者直接从 MyFaces 版本系统下载 MyFaces 二进制文件。
    注意:如果您决定从该版本系统获得一个版本,则应该下载文件 myfaces-1.0.8.tgz。在此示例中,我们将使用该版本系统中的文件。
  3. 解压缩该文件,然后找到一个用于 MyFaces 1.0.8 版本的、名为“myfaces-extension.jar”的文件。此文件位于 [extract_location]\myfaces-1.0.8\lib 中。
  4. 启动 JDeveloper 10.1.3 开发人员预览版。
  5. 单击 Tools 菜单,然后选择 Manage Libraries... 选项。
  6. 选择 JSP Tag Libraries 选项卡。
  7. 单击左侧窗格中的 Users 节点,然后单击列表底部的 New 按钮。
  8. 找到并选择第 3 步中提到的 myfaces-extension jar 文件。单击 Open
  9. 现在您应该在左侧窗格中拥有了一个节点,该节点名为“x 0.9.0”,右侧窗格则应该填充了 MyFaces 扩展 TLD 的相关信息。


     
  10. 将显示名称从“x”更改为“MyFaces Extension”。
  11. 关闭该对话框之前,请确保选中“Execute Tags in JSP Visual Editor”选项,以启用这些自定义组件的实时呈现。

说明 JDeveloper 中 MyFaces 的图像

现在您已经在 JDeveloper 中安装了 MyFaces 组件。如果您需要向一个已经存在的项目添加这些组件,则必须将该标记库添加到项目属性中。如果您从头创建应用程序或页面,则可以在 New Page 向导中添加这些标记库。

有关 MyFaces 的更多信息,请访问 Apache MyFaces 网站。有关 Oracle 的 JSF 产品的详细信息,请访问 OTN 上的 JDeveloper 和 Oracle ADF Faces EA 页面。

将 ADF Faces 组件用于 MyFaces 实施

由于前面所提到的 Oracle JDeveloper 10.1.3 开发人员预览版中的限制,开发人员必须首先使用 RI 作为基础创建他们的 ADF Faces 应用程序。当创建了该应用程序并准备用于部署时,开发人员可以使用 MyFaces 库来替换该 RI 库。为了说明如何使用 MyFaces 实施设置 ADF Faces 组件构建的应用程序,我们将使用 ADF Faces 演示包。
下面是如何完成上述操作的步骤:

  1. 从 OTN 下载 ADF Faces 完整独立安装 (adf-faces-ea13.zip)。
  2. 解压缩该文件,并找到 adf-faces-demo.zip 文件。该文件应位于 adf-faces-ea12 目录的根目录下。
    注意:文件 adf-faces-demo.zip 是一个缺少第三方资料库的演示 WAR。它被重命名为 ZIP,以使用户在缺少资料库的情况下不会试图运行它。
  3. 解压缩 adf-faces-demo.zip。将把其解压至我们称为 [DEMO_HOME] 的目录。
  4. 在 [DEMO_HOME]/WEB-INF/lib 目录中,删除下列库:
     
    • jstl.jar
    • commons-logging-1.0.3.jar
    • commons-digester-1.5.jar
    • commons-collections-2.1.jar
    • commons-beanutils-1.6.jar
  5. 获得缺少的 MyFaces JSF 1.0.8 JAR 文件 - 下载 tgz 文件“myfaces-1.0.8.tgz”。将以下 jars 文件解压至 [DEMO_HOME]/WEB-INF/lib(确保未选中 WinZip 的“Use Folder Names”选项):
    • 所有“commons-*.jar”
    • 所有“myfaces-*.jar”
    • jakarta-oro.jar
    • jstl.jar
    • jsp-2.0.jar

准备部署之前,需要在 WEB.XML 文件中进行一些更改。该 web.xml 位于 [DEMO_HOME]/WEB-INF 目录中。我们需要包括 StartupServletContextListener 类。

注意:该类需要能够分析 faces-config.xml 文件,并应该实施到 myfaces-core.tld 中,而不应将其定义在 web.xml 文件中。

  1. 在该 web.xml 文件的顶部、<web-app> 标记之下添加下列代码段:

    <listener>
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
    </listener>
  2. 您还必须在 ADF Faces 包提供的 web.xml 底部删除下列行:

    <!-- ADF Faces Tag Library -->
    <taglib>
    <taglib-uri>http://xmlns.oracle.com/adf/faces/EA13</taglib-uri>
    <taglib-location>/WEB-INF/af.tld</taglib-location>
    </taglib>

    <taglib>
    <taglib-uri>http://xmlns.oracle.com/adf/faces/EA13/html</taglib-uri>
    <taglib-location>/WEB-INF/afh.tld</taglib-location>
    </taglib>

    <!-- Faces Core Tag Library -->
    <taglib>
    <taglib-uri>http://java.sun.com/jsf/core</taglib-uri>
    <taglib-location>/WEB-INF/jsf_core.tld</taglib-location>
    </taglib>

    <!-- Faces Html Basic Tag Library -->
    <taglib>
    <taglib-uri>http://java.sun.com/jsf/html</taglib-uri>
    <taglib-location>/WEB-INF/html_basic.tld</taglib-location>
    </taglib>

    注意:不需要这些引用,因此不应存在于此文件中。这个问题将在以后版本的 ADF Faces 演示包中进行修复。
     
  3. 将结果重新压缩到一个名为“adf-faces-myfaces-demo.war”的文件中。确保目录结构与 adf-faces-demo.zip 中的目录结构相同。

现在该 WAR 已经完成准备,可以运行了。有关该演示 war 的详细信息,请按照安装页面上的说明进行操作。

在 JDeveloper 中运行

  1. 创建一个新的应用程序工作区。
    • 选择 File -> New -> General -> Workspaces -> Application workspace。
  2. 在新的工作区中,从 WAR 文件中创建一个项目。
    • 选择 File -> New -> General -> Projects -> Project from WAR File。
  3. 在该向导的第 1 步中,将该项目命名为“demo”,并接受默认的目录位置。
  4. 在第 2 步中,找到 WAR 文件 (adf-faces-myfaces-demo.war)。
  5. 单击 Finish。这将把该 WAR 文件的内容展开到您的新的项目目录中。您现在将在 Application Navigator 中看到您的新项目。
  6. 花几秒钟熟悉一下该应用程序中的各个文件。您将在 WEB-INF 目录中找到 adf-faces-config.xml 以及其他文件。
  7. 确保在 Compiler 类别下面的项目属性中,启用了“J2SE 1.4 Assertions”。
    • 选择“Tools -> Project Properties -> Compiler”,选中“Enable J2SE 1.4 Assertions”
  8. 添加 J2EE 库
    • 选择“Tools -> Project Properties -> Libraries”,添加“J2EE”库
  9. 单击 OK 关闭 Project Properties 对话框。
  10. 您现在可以通过运行 index.jspx 来启动该演示程序。

更多信息

有关 JSF 和 Oracle JDeveloper 10g (10.1.3) 开发人员预览版的详细信息,请访问 Oracle 技术网上的 Oracle JDeveloper 主页

Left Curve
热门下载
Right Curve