< 上一课 | 下一课 >

课程 1.6:创建更新页面

此时,您已经创建了用于查看和创建 Web 站点列表的页。在此练习中,您将创建允许用户更新和删除列表的页面。更新页面与创建页面看起来几乎完全相同,不同之处是在更新页面上,输入字段将显示现有记录的数据以供用户更改。

首先,您将创建一条关系记录,它表示数据库中的一条现有记录。接下来,将为此关系记录创建 JavaServer Faces 更新表单,并且稍加更改之后,就可以测试您的页面。

创建更新关系记录

  1. 通过在“企业资源管理器”视图中双击 update_record.jsp 文件来打开该文件。
  2. 删除缺省文本在此处插入内容
  3. 在“选用板”视图中,单击数据和服务抽屉以展开该抽屉。
  4. SDO 关系记录组件从“选用板”拖动到空白内容区域上。将打开添加关系记录窗口。
  5. 在“名称”字段中,输入 update_record
  6. 为以下项创建控件下面,单击更新现有记录
  7. 确保选择了添加输入/输出控件以在 Web 页面上显示关系记录选项。
  8. 单击下一步
  9. 在“表”框中,展开 W5SAMPLE 并选择 ADS。
  10. 单击下一步。 将打开“添加关系记录”页面。

对结果进行过滤

关系记录仅可显示数据库中的一条记录。因此,您必须过滤数据库表以便仅显示一条记录来供用户编辑。您不需要过滤上一个练习中的数据库,这是因为您创建了新记录,所以没有来自数据库的要过滤的结果。由于数据库中的每条记录都具有唯一的 ID 号,所以将把结果过滤为具有给定 ID 号的一条记录。
  1. “添加关系记录”页面具有任务链接的列表。在任务下面,单击对结果进行过滤。将打开“过滤”窗口,并且在过滤列中插入缺省过滤条件 ID = #{param.ID}。“过滤”窗口类似于下图:
    “过滤”窗口。
    。此代码会过滤数据库中的记录,以使只有具有指定 ID 号的记录才会出现在关系记录中。您将在此练习中稍后描述的“添加行操作”一节了解到有关此条件的更多内容。单击关闭
  2. 单击下一步。 将打开“配置数据控件”页面。
  3. 要显示的字段部分,清除每个字段名旁边的复选框(您想要显示在输入表单中的那些字段名除外):
    • 标识
    • MAINCATEGORY
    • TITLE
    • DESCRIPTION
    • PRICE
    • PHONE
  4. 通过单击上移下移,将字段名按照自顶向下的顺序重新排序,如下所示:
    • 标识
    • TITLE
    • DESCRIPTION
    • MAINCATEGORY
    • PRICE
    • PHONE
  5. 对于“标识”字段,从控件类型列的下拉列表中选择显示编号。虽然您希望用户能够查看记录标识号,但是不希望他们能够对它进行更新。使“标识”字段成为输出字段将有助于避免产生重复标识的问题。
  6. 单击选项。将打开“选项”窗口。确保选择了提交按钮选项。在标签字段中输入更新。单击确定 “添加关系记录”窗口应类似于下图:
    “添加关系记录”窗口。
  7. 单击完成以在页面上生成更新表单,如下图所示:
    已更新的表单页面。

对“更新”和“删除”按钮进行编程

此外,将添加代码以使用户能够查阅 all_records.jsp 页来显示更改过的记录以及所有其他记录。
  1. 右键单击刚才在 Web 页面上创建的更新按钮,然后选择属性
  2. 单击添加规则。将打开添加导航规则窗口。
  3. 从“页面”下拉菜单中,选择 all_records.jsp。在此规则的适用对象框中,单击仅适用于此操作。确保该字段包含:#{pc_Update_record.doUpdate_recordUpdateAction}。单击确定
  4. 重复步骤 1 到步骤 3 以在 Web 页面上按相同的方式为“删除”按钮编辑代码。确保此规则的适用对象字段中包含:#{pc_Update_record.doUpdate_recordDeleteAction}
  5. 保存该页面。如果要尝试对数据库中的记录进行更新以验证是否将返回到 all_records.jsp 页面,请在测试服务器上运行 new_record.jsp。

添加行操作

现在,您将对 all_records.jsp 上的表添加行操作,以使用户可选择要更新的数据库记录。#{param.ID} 表示更新页面将要更新的记录的 ID 号。当用户单击某一行时,该记录的 ID 号将被发送至 update_record.jsp 页作为 #{param.ID} 参数。然后,刚才插入到 update_record.jsp 页中的已过滤关系记录将仅显示该记录以用于更新。
  1. 在“企业资源管理器”视图中,双击 all_records.jsp 文件以在编辑器中打开该文件。单击数据表中的任何位置。打开“属性”视图。
  2. 在“属性”视图中,单击 HTML 标记列表中的 hx:dataTableEx 下面的行操作选项卡。
  3. 单击添加单击行时就会执行的操作。将打开“配置行操作”对话框。选择单击行时就会对服务器发送请求,并将行信息作为参数来发送,然后单击确定。这就会将一列添加至数据表。
  4. 在“属性”视图中单击 hx:requestRowAction 选项卡。
  5. 单击添加规则。将打开“添加导航规则”对话框。
  6. 从“页面”下拉菜单中,选择 update_record.jsp。在“此规则的适用对象”框中,选择仅适用于此操作。会自动向“仅适用于此操作”字段中填充您在添加行操作时所创建的 #{pc_All_records.doRowAction1Action}。单击确定 如果没有为该字段自动填充以上方法,那么在该字段中输入此方法,并对“ClassifiedsTutorial/Java 资源”添加以下内容:src/pagecode/All_records.java:
    public String doRowAction1Action() {
    				return "";}
  7. 在“属性”视图中单击 hx:requestRowAction 下的参数选项卡。单击添加参数,然后在“名称”字段中输入 ID。需要将 ID 参数绑定至 ID 列。将行操作绑定至数据列表的 ID 列意味着单击行时,请求参数将是列表中的记录的 ID。
    1. 单击,然后单击选择页数据对象 按钮。
    2. 数据对象选项卡中,展开 all_recordlist(服务数据对象) > all_recordlist(ADS),然后选择 ID(java.lang.Integer)
    3. 单击确定
现在,当用户单击一行时,Web 站点将允许用户更新有关分类信息广告的信息。保存该文件,愿意的话,测试该页面。请记住,要先打开 all_records.jsp,因为这是链接至 update_record.jsp 的页面。

课程要点

您已经完成了课程 1.6。在本课程中,您学习了如何创建可用来更新数据库中的记录的 Web 页面。
< 上一课 | 下一课 >

反馈