< 上一课 | 下一课 >

课程 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. 要显示的字段部分,取消选中每个字段名旁边的复选框(您要显示在输入表单中的那些字段名除外):
    • ID
    • MAINCATEGORY
    • TITLE
    • DESCRIPTION
    • PRICE
    • PHONE
  4. 通过单击上移下移来使字段名按照自顶向下的顺序重新进行排序,如下所示:
    • ID
    • TITLE
    • DESCRIPTION
    • MAINCATEGORY
    • PRICE
    • PHONE
  5. 对于 ID 字段,从控件类型列的下拉列表中选择显示编号。虽然您希望用户能够查看记录 ID 号,但是不希望他们能够对它进行更新。使 ID 字段成为输出字段将有助于避免产生 ID 重复这一问题。
  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 页面。
< 上一课 | 下一课 >

反馈