如何结合使用 ADF Faces 与 JDeveloper 10g
Oracle Corporation 的 Jonas Jacobi 和 Poh Lee Tan 编写的 Oracle JDeveloper 方法文档
2004 年 8 月
索引
简介
ADF Faces 是基于 JavaServer Faces (JSF) 的 Oracle 应用程序开发框架 (ADF) 视图技术。虽然 JDeveloper 10g 对 ADF Faces 开发的完整和增强的支持将在 10g 之后的版本中提供,但仍然可能在 JDeveloper 10g 中高效地进行 ADF Faces 开发。本文档说明了如何在 JDeveloper 10g 中安装和使用 ADF Faces 的试用版本。
Oracle ADF Faces 是一组基于新的 JavaServer Faces JSR (JSR-127) 的功能丰富的用户界面组件。Oracle 从一开始便积极参与此 JSR。Oracle ADF Faces 组件提供了能够在您的应用程序中定制和重用的用户界面组件,这些用户界面组件带有内置功能(如值列表、表、hGrid、颜色选择器和日历)。
ADF Faces 可以确保应用程序具有一致的外观,使您能够将更多精力用于用户界面交互而不是保持界面外观一致。这些组件支持多语言和翻译实施以及辅助选项特性。ADF Faces 组件使用可提供更好的运行时交互的部分页面显示(PPR)技术。PPR 允许浏览器只显示页面的一部分而非整个页面。
此试用版本旨在为开发人员和架构师提供一个评估 JSF 和 Oracle 的 JSF 组件的机会。
前提条件
ADF Faces 的依赖的条件有:
如何将 ADF Faces 资料库安装到 JDeveloper 中
创建一个 "ADF Faces" 资料库并注册 ADF Faces 标记库
- 下载 adf-faces-ea6.zip。将该文件解压到一个单独的目录中(例如 d:\adffaces)。该目录将包含 docs、lib 和 src 子目录以及 adf-faces-demo.zip。lib 目录将包含结合使用 Jeveloper 与 ADF Face 所需的 jar 文件和 tld(标记库描述符)文件。
- 创建一个 JDeveloper "ADF Faces" 资料库,以在 JDeveloper 中管理所需的 ADF Faces jar 文件。
- 从主菜单中选择 Tools-> Manage Libraries。
- 选择 "Libraries" 标签。
- 选择 "System Libraries" 节点并单击 "New"。
- 将该资料库命名为 "ADF Faces"。
- 对于 "Class Path:"单击 "Edit..." 并添加位于 ADF Faces lib 目录 ("d:\adffaces\lib") 下的所有 jar 文件: adf-faces-api.jar、 adf-faces-impl.jar 和 share-1_1_18.jar。
- 现在在 JDeveloper 中注册 ADF Faces 标记库并将它们添加到 Component Palette。
- 同样,从菜单中选择 Tools-> Manage Libraries。
- 这次选择 "JSP Tag Libraries" 标签并单击 "New"。
- 通过指定以下各项添加 " ADF Faces Core" 标记库:
- TLD 文件:D:\adffaces\lib\adf-faces-impl.jar\META-INF\af.tld(使用 Browse 按钮,然后在 adf-faces-impl.jar 中找到 ADF Faces Core tld)
- 资料库:ADF Faces(单击 Browse 按钮,然后并选择新的 "ADF Faces" 资料库。)
- URI:http://xmlns.oracle.com/adf/faces/EA6(自动填入)
- 前缀:af
- 保留 "Execute Tags in JSP Visual Editor" 复选框的非选中状态,然后单击 "OK"。
- 在询问是否将标记库添加到 Component Palette 中的对话框中,请回答 " Yes"。
- 为模板页面名称命名:" ADF Faces Core"。(您可以编辑组合框。)
- 重复该过程,并通过以下操作添加第二个 " ADF Faces HTML" 标记库:
- 选择 Tools-> Manage Libraries,选择 "JSP Tag Libraries" 标签并单击 "New"。
- TLD 文件:D:\adffaces\lib\adf-faces-impl.jar\META-INF\afh.tld(使用 Browse 按钮,在 adf-faces-impl.jar 中找到 ADF Faces HTML tld)
- 资料库:ADF Faces(单击 Browse ,然后选择与前面相同的 ADF Faces 资料库。)
- URI:http://xmlns.oracle.com/adf/faces/EA6/html(自动填入)
- 前缀:afh
- 保留 "Execute Tags in JSP Visual Editor" 复选框的非选中状态,然后单击 "OK"。
- 在询问是否将标记库添加到 Component Palette 中的对话框中,请回答 "Yes",这次指定模板页面名称为:" ADF Faces HTML"。
注意:ADF Faces 的所见即所得可视化编辑还没有在 JDeveloper 中提供,但正在开发中,并将在即将推出的 JDeveloper 生产版中提供。
- 完成!您刚刚配置了 JDeveloper 10g,以结合使用 ADF Faces。下一步是配置项目,以使用 ADF Faces。
如何配置项目以使用 ADF Faces
要开始构建 ADF Faces 应用程序,您需要将配置项目的 web.xml,在其中 包含一个 faces-config.xml 启动文件和一个 adf-faces-config.xml 启动文件。
- 开始时,您将需要一个含空项目的 Application Workspace:
- 选择 File->New...->General->Application Workspace。
- 将工作区命名为 “adf_app” 并接受 Directory Name:和 Application Package Prefix: 的默认值。
- 对于 Application Template:,选择“No Template [All Technologies]”。
- 单击 OK 继续。
- 这将生成一个新的 Application Workspace 和一个空的项目 Project(名称为 "Project")。您可以将它用于您的 ADF Faces 应用程序。(您可以使用 File->Rename... 将其重命名为 "adftest")
- 在该项目中,创建一个新的 JSP。
- File->New...->Web-Tier->JavaServer Pages->JSP Page。
- 将其命名为 "helloadffaces.jsp"。这也将在该项目的 WEB-INF 目录中生成一个 web.xml 文件。
- 在 Application Navigator 中,找到 web.xml 文件并双击编辑它。
- 将以下内容添加到您的 web.xml 中的 <description>..</description> 标记 之后:
<!-- Faces Servlet -->
<servlet>
<servlet-name>faces</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
??<servlet-name>faces</servlet-name>
??<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
注意:您实际上可以使用任意的 Faces servlet 映射。例如: <url-pattern>*.faces</url-pattern>。
- 现在在与您的 web.xml 相同的位置上创建一个 faces-config.xml 文件。创建一个新的简单文件:
- 选择 File->New->General->Simple File...
- 将该文件命名为 faces-config.xml 并使用 Browse... 按钮在您的项目的 WEB-INF 目录中指定其位置。
- 将以下内容复制并粘贴到您的新的 faces-config.xml 文件中:
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
</faces-config>
- 现在在与您的 web.xml 相同的位置上创建一个 adf-faces-config.xml 文件。创建一个新的简单文件:
-
- 选择 File->New->General->Simple File...
- 将该文件命名为 adf-faces-config.xml 并使用 Browse... 按钮在您的项目的 WEB-INF 目录中指定其位置。
- 将以下内容复制并粘贴到您的新的 adf-faces-config.xml 文件中:
<?xml version="1.0"?>
<adf-faces-config xmlns="http://xmlns.oracle.com/adf/view/faces/config">
??<debug-output>true</debug-output>
??<accessibility-mode>#{prefs.proxy.accessibilityMode}</accessibility-mode>
??<look-and-feel>#{prefs.proxy.lookAndFeel}</look-and-feel>
</adf-faces-config>
- 就这样!您的项目配置好了,可以和 ADF Faces 结合使用了。
安装 ADF Faces 可安装资源
ADF Faces 使用自己的图像、JSP、Javascript 资料库和样式表。这些文件在 adf-faces-install.zip 文件中。将可安装文件解压到 web 应用程序 (public_html) 的根目录中。这将创建以下目录:
- public_html\adf\images
- public_html\adf\jsps
- public_html\adf\jsLibs
- public_html\adf\styles
创建一个简单的 ADF Faces 应用程序以测试您的配置
现在您已经针对 ADF Faces 配置好了一个项目,您可以创建一个简单的 ADF Faces 应用程序来测试您的配置。
- 如果还没有打开 JSP “helloadffaces.jsp”,那么请在 JSP Visual Editor 中打开新的 JSP “helloadffaces.jsp”。
- 切换 Component Palette 至 "JSF Core" 页面。
- 将“view”标签拖放到页面上。所有 Faces 页面都需要“view”标签。
- 现在切换 Component Palette 至“ADF Faces Core”。
- 将一个“outputText”标签拖放到现有的“view”标签 内部。黑色的边框表示容器。
- 在 Property Inspector 中,将 outputText 标签的 value 属性设为 "hello ADF Faces!"。
- 单击主菜单上的 "Save All" 图标,保存您的所有工作。
- 确保您在项目属性中启用了 "J2SE 1.4 Assertions"。
- 选择 Tools -> Project Properties -> Profiles -> Development -> Compiler
- 添加 J2EE 资料库
- 选择 'Tools -> Project Properties -> Libraries' 并添加 'J2EE'
- 运行页面,启动嵌入式 OC4J。
- 重要事项:这不会立即生效,因为您必须将 "/faces" servlet 映射加入到您的浏览器的 URL 中,以使用 Faces servlet 发出请求。
将以下内容:http:// yourhost:8988/ YourJ2EEContextRoot/ faces/helloadffaces.jsp 加入到您的浏览器的 URL 窗口中。 - 当您用正确的 URL 访问页面时,您将看到您的页面包含一条 "hello ADF Faces!" 讯息。
导入并运行 ADF Faces 演示程序
adf-faces-demo.zip 是一个缺少第三方资料库的演示 WAR。它被重命名为 ZIP,以使用户在缺少资料库的情况下不会试图运行它。请按照以下指示将 adf-faces-demo.zip 变为一个可工作的 WAR。
- 解压缩 adf-faces-demo.zip。将把其解压至我们称为 [DEMO_HOME ] 的目录。
- 获取缺少的 JSF 1.1 JAR 文件 - 转至 "JavaServer Faces v1.1 Reference Implementation" 下载按钮,下载 zip 文件 'jsf-1_1.zip'。将以下 jars 文件解压至 [DEMO_HOME ] /WEB-INF/lib(确保未选中 WinZip 的 "Use Folder Names" 选项):
- 将解压后的文件重新压缩到一个名称为 ‘adf-faces-demo.war' 的文件中。确保目录结构与 adf-faces-demo.zip 中的目录结构相同。
现在该 WAR 已经完成准备,可以运行了。
- 创建一个新的工作区。
- 选择 File -> New -> General -> Workspaces -> Workspace。
- 将名称设置为 "MyWorkspace"
- 在 "Create Workspace" 对话框中,取消选中的 "Add a New Empty Project" 选项。
- 单击 Finish
- 在新的工作区中,从 WAR 文件中创建一个项目。
- 选择 File -> New -> General -> Projects -> Project from WAR File。
- 在向导的第 1 步中,将该项目命名为 "adffacesdemo" 并接受默认的目录位置。
- 在第 2 步中,找到 WAR 文件 (adf-faces-demo.war)。
- 单击 Finish。这将把该 WAR 文件的内容展开到您的新的项目目录中。您现在将在 Application Navigator 中看到您的新项目。
- 花几秒钟熟悉一下该应用程序中的各个文件。您将在 WEB-INF 目录中找到 adf-faces-config.xml 以及其它文件。
- 确保您在项目属性中启用了 "J2SE 1.4 Assertions"。
- 选择 Tools -> Project Properties -> Profiles -> Development -> Compiler
- 添加 J2EE 资料库
- 选择 'Tools -> Project Properties -> Libraries' 并添加 'J2EE'
- 您现在可以通过运行 index.jspx 来启动该演示程序。
![]()