|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1. | 在欢迎页面中添加一个标题。 在页面的顶部输入一些文本: Welcome to the HR JSF Application。 通过单击 Visual Editor 顶部右侧的下拉列表并选择 Heading 2 来将文本格式化为 H2。
|
| 2. | 在页面中应用 CSS 样式表。 要执行这一操作,首先在屏幕右上的 Components 区域中选择 CSS 页面。 然后将 JDeveloper 样式表拖到新的 JSP 上。 您将看到页面外观立即改变。
|
| 3. | 接下来将一个 JSF 命令按钮 (commandButton) 组件拖放到该页面上。 要执行这一操作,请确保在右侧可以看到组件选项板 (component palette)。 (如果看不到,请用 View->Component Palette),并选择组件的 JSF HTML 列表。然后将 Command Button 项目拖放到页面上的标题文本下面。
|
| 4. | 在右下方的 Property Inspector 中,将 CommandButton 的 Value 属性更改为 Proceed to Login。
|
| 5. | 将 Action 属性更改为 login。 这将使用户能够单击它继续转到另一个页面上。
|
| 6. | 请注意,当您在 Visual Editor 中工作时,JSF 组件将以运行时外观显示(即,例如以一个按钮的形式)。 单击 Visual Editor 底部的 Source 选项卡,转至页面的源代码视图。
|
| 7. | 向下滚动页面的主体可以看到以下标记: 这是 JSP 标记,该标记提供了到 JSF commandButton 用户界面组件 (UIComponent) 的钩子。 当该标记执行时,它将提供一个可点击的按钮,该按钮可以执行诸如调用 Java 方法或执行 Faces 导航之类的任务。 在本例中,它将执行到第二个页面的简单导航。 这是通过在 Property Inspector 中设置 commandButton 的 Action 属性,然后在稍后定义与动作的值对应的导航规则来实现的。 在本例中,您已经将 Action 属性的值设为 login。 稍后您将定义一个导航规则来使用同一个值导航至第二个登录页面。
|
本副主题将指导您使用 JSF 页面流编辑器,从全局的视角以可视化方式设计应用程序。 JSF 页面流编辑器使您能够根据页面导航规则来设计整个应用程序的页面流。
| 1. | 在导航器中找到 faces-config.xml 文件。 双击该文件调用页面流编辑器。
Visual Editor 将显示一个空白的屏幕。 |
| 2. | 在继续之前,请注意在屏幕底部编辑器有 4 个选项卡: Diagram、Overview、Source 和 History。 默认视图是 faces-config 编辑器的 Diagram 视图,该视图允许您以可视化方式来编辑 faces-config 的导航规则。 单击 Overview 选项卡将显示一个控制台类型的界面,它允许您将所有类型的配置注册到 faces-config 文件中,包括 managed beans、导航规则和其他的项目(例如自定义验证器、转换器等)。(注意: 您可以通过可视化方式或使用 Overview 编辑器来定义导航规则。) Source 选项卡允许您直接利用增强的 XML 编辑功能(包括标记完成功能)来编辑 XML。History 选项卡是所有编辑器窗口通用的,它将显示最近编辑的历史信息。
|
| 3. | 指定一条从 welcome.jsp 页面到新的 login.jsp 页面的导航规则。 通过在导航器中对最初的 welcome.jsp 页面进行拖放,将其引入到图中。
|
| 4. | 在图中直接创建 login.jsp。 要执行这一操作,请将一个 JSF Page 项目从 Component Palette 上拖放到页面流图中。 将其更名为 /login.jsp。
|
| 5. | 通过单击(不是拖放)该选项板中的 JSF Navigation Case 项目,然后单击 welcome.jsp 图标来创建导航规则 (Case)。 您将看到一条连接线开始出现。 然后单击 login.jsp,完成连接。
|
| 6. | 在 Property Inspector 中,将默认的 From Outcome 值从 success 更改为 login,以匹配您为 welcome.jsp 页面上 commandButton 的 Action 属性设置的值。
|
| 7. | 通过单击 faces-config.xml 文件的 Source 选项卡来查看指定的新导航规则,并了解一下您刚刚指定的导航规则的实际语法。
|
| 8. | 单击 Diagram 选项卡返回至 Visual Editor,并创建 login.jsp 页面。 通过在 Visual Editor 中双击它调用您之前使用的 JSF JSP 向导来执行这一操作。
|
| 9. | 按照向导的步骤,接受所有的默认值来创建登录页面。 一旦创建完成,空白页面将在 Visual Editor 中打开。
|
| 10. | 在登录页面中添加详细信息。 该页面的用途是使用户能够在输入正确证书 (oracle/welcome) 的情况下转到 employees.jsp 页面上。 添加一个标题 Application Login,并和之前一样用 H2 对其进行格式化。 然后和之前一样应用 JDeveloper CSS。
|
| 11. | 要构建登录页面,您将使用在 JSF 规范中提供的一组基本组件: panelGrid、outputlabel、inputText、inputSecret 和您之前使用的 commandButton。 panelGrid 将充当登录域的一个格式化容器。 在 Component Palette 中,确保显示了 JSF HTML Palette 页面,并从 Component Palette 中选择 Panel Grid。
|
| 12. | 当您将 PanelGrid 拖到页面上时,将出现一个向导。 指定您想创建一个 2 行的空面板网格 (empty panel grid)。 单击 Finish,将组件添加到页面上。 然后您将在页面上看到一个矩形。
|
| 13. | 将下列组件以下面的顺序从 Palette 中拖放到 panelGrid 中: Output label、Input Text、Output label、Input Secret 和 Command Button。 按下图中的方式对其进行排列。
|
| 14. | 将 Output labels' value 属性分别更改为 Userid 和 Password。 (您可以在屏幕上或者通过在 Property Inspector 中修改值属性来编辑标签)。 将 Command Button 的 value 更改为 Login(在 Property Inspector 中进行修改)。
|
| 15. | 将一个 Messages 组件拖放到页面上(紧挨着 Login 按钮)。 这是显示登录失败消息的地方。
|
| 16. | 添加代码指定 Login 命令按钮的行为。 双击 Login 按钮。 这将打开 login.java 文件,并将光标定位到注释行
删除 return null; 语句。 接受 Import Assistance 消息,导入相应的 Faces 程序包。
注意:
|
| 17. | 在页面流图中创建第三个页面 employees.jsp。该页面将显示从(您在本教程的第一个主题中创建的)TopLink 模型中获取的员工列表。 点击选项卡返回至 faces-config.xml 文件,拖放一个新的页面到页面流图上,并将其命名为 /employees.jsp。
|
| 18. | 在图中双击新页面直接创建它。 Create JSF JSP Wizard 再次被启动。 按照步骤进行操作,接受所有的默认值并创建页面。 新的空白 Employees 页面将在 Visual Editor 中打开。
|
| 19. | 将一个 H2 的标题 Employees 添加到页面中,并再次添加 JDeveloper 样式表。 保存该页面。
|
| 20. | 点击选项卡返回至 faces-config.xml 文件,并创建一个从 /login.jsp 到 /employees.jsp 的 JSF Navigation Case。 接受默认的 From Outcome 值 success。
|
| 1. | 在页面流图中的 /welcome.jsp 页面上单击右键,并从上下文菜单中选择 Run。
|
| 2. | 内嵌的 OC4J 服务器启动。 请注意在日志窗口中显示的消息。
|
| 3. | 出现欢迎页面。 单击 Proceed to Login 按钮。
|
| 4. | 显示 Login 页面。 在 UserId 域中输入 oracle,Password 域中输入您的姓名。 按 Login 按钮。
|
| 5. | 这将触发一个登录错误,您将停留在登录页面上,并将显示自定义的错误消息 Invalid Login。
|
| 6. | 这次提供正确的证书,在 UserId 域中输入 oracle,Password 域中输入 welcome。 再次按 Login 按钮。 出现 Employees 页面。
从 Welcome 页面到 Login 页面、再到 Employees 页面的导航成功!
|
在这个副主题中,您将向 Employees 页面中添加内容,以显示从(您在本教程的第一个主题中创建的)ToLink 模型中获取的员工表。
要使用我们在 model 项目中创建的 TopLink EmployeesClient 代码,您必须在您的 JSF 应用程序中将该类注册为 managed bean。
这是通过编辑 faces-config.xml 文件并为该 Bean 添加一个条目来完成的。
| 1. | 打开 faces-config.xml 文件(如果它还没打开),并点击屏幕底部的 Overview 选项卡。
|
| 2. | 屏幕左侧的 Managed Beans 节点向您显示了当前注册的 Bean 集。 backing_welcome、backing_login 和 backing_employees bean 是在您创建 JSF JSP 页面时利用自动绑定特性自动生成的。
|
| 3. | 在 Create Managed Bean 对话框中,在 Name 域中输入 Employees,浏览找到 hr.model.EmployeesClient 类,并保留 Scope 为 request。单击 OK。
您现在已经注册了 EmployeesClient 类,它将在 JSF 应用程序中作为 Employees Managed Bean 使用。
|
| 4. | 接下来将一个 DataTable 添加到 employees.jsp 页面中,并将其与来自该 managed bean 的 getEmployees() 方法绑定在一起。 要执行这一操作,请单击 employees.jsp 选项卡,在 Visual Editor 中打开页面,并在 Component Palette 中选择 JSF HTML 页面。
|
| 5. | 将 Data Table 组件拖放到空页面上。
Create Data Table 向导将启动。
|
| 6. | 单击跳过欢迎页面,在第二个页面中,确保选中了 Bind the Data Table Now 单选按钮。单击 Next。
|
| 7. | 在下一个页面中,单击 Bind... 按钮绑定 Value 域。
|
| 8. | 在 JSF Expression Builder 对话框中,展开 Employees 节点并双击 employees 来生成表达式:
|
| 9. | 在 Bind Data Table 屏幕中,浏览找到 hr.model.Employees 类,并在 Var 域中输入 row。
数据表的标题和行数据将显示。
|
| 10. | 执行该 DataTable 的一些最后的自定义,如下所示: 将 Employee Id 列重新排序至顶部,将 Email 列的组件更改为 Command Link,并将 Number of rows to display 更改为 10。 单击 Finish,完成数据表的创建。
|
| 11. | 生成的数据表将显示在 Visual Editor 中。请尝试单击不同的列和单元格。 请注意左下的 Structure Pane 如何与您在 Visual Editor 中点击的内容保持同步。
|
| 12. | 您可以通过在 Property Inspector 中点击一个属性并更改其值来改变数据表的可视化属性。 或者,您可以选择 Structure Pane 中的元素。 在下面的示例中,在 Structure Pane 中选中 dataTable ,并在 Visual Editor 中高亮显示,其属性显示在 Property Inspector 中,可以在其中修改这些属性。
|
| 13. | 还可以在 Structure Pane 和 Visual Editor 中重新排序和删除列(和标记)。 在 Visual Editor 或 Sructure Pane 中选择 Commission Pct 列,并按 Delete 键。 对 Employee(代表 Manager)列、Employees Collection 和 Job Id 执行同样的操作。 将 Department Id 列移到表的右端。 您的数据表将看起来与下图类似。 保存 employees.jsp 页面。
|
| 1. | 单击 faces-config.xml 标签,返回至页面流图。 (您可能需要单击屏幕底部的 Diagram 选项卡来显示您的图)。
|
| 2. | 右键单击 welcome.jsp,并从上下文菜单中选择 Run。 当您成功通过登录页面时,您将看到新的员工页面,该页面包含一个填充了员工信息的数据表。
|
在本教程中您了解到了如何使用 JavaServer Faces 来构建一个到人力资源应用程序的 Web 界面。
在本教程中,您学习了如何执行下列任务:
| 构建 TopLink 模型 | ||
| 构建 JavaServer Faces 视图 | ||