练习 1.5:创建更新页面

在开始之前,必须完成练习 1.4:创建新的记录

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

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

创建更新关系记录

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

过滤结果

演示

关系记录仅可显示数据库中的一条记录。因此,您必须过滤数据库表以便仅显示一条记录来供用户编辑。(您不需要过滤上一个练习中的数据库,因为您创建了新记录,所以没有来自数据库的要过滤的结果。)由于数据库中的每条记录都具有唯一的 ID 号,所以将把结果过滤为具有给定 ID 号的一条记录。

  1. 任务下面,单击过滤结果。将打开“过滤”窗口,并且在过滤列中插入缺省过滤条件 ID = #{param.ID}

    “过滤”窗口看起来应类似于下图:

    “过滤”窗口

    此代码会过滤数据库中的记录,以使只有具有指定 ID 号的记录才会出现在关系记录中。您将在此练习中稍后描述的“插入超链接”一节了解到有关此条件的更多内容。

  2. 单击关闭
  3. 单击下一步。将打开“配置数据控件”页面。
  4. 要显示的字段部分,清除每个字段名旁边的复选框(您想要显示在输入表单中的那些字段名除外):
  5. 通过单击上移下移,将字段名按照自顶向下的顺序重新排序,如下所示:
    1. ID
    2. TITLE
    3. DESCRIPTION
    4. MAINCATEGORY
    5. PRICE
    6. PHONE
  6. 对于 ID 字段,从控件类型列的下拉列表中选择输出字段

    虽然您希望用户能够查看记录的 ID 号,但是不希望他们能够更新它。将 ID 字段创建为“输出”字段将有助于避免产生重复 ID 的问题。

  7. 单击选项。将打开选项窗口。
  8. 确保选择了提交按钮选项。
  9. 标签字段中输入更新
  10. 单击确定
  11. 添加关系记录窗口看起来应该类似于下图:

    “添加关系记录”窗口

  12. 单击完成以将更新表单生成到页面中,如下图所示:

    当前页面外观

对“更新”按钮编程

演示

此外,将添加代码以使用户能够查阅 all_records.jsp 页来显示更改过的记录以及所有其它记录。

  1. 单击刚才在 Web 页面上创建的更新按钮。
  2. 打开“快速编辑”视图。
  3. 在“快速编辑”视图中,进行单击以将光标就放在代码 return ""; 前面。
  4. Enter 键。将在 return ""; 前面出现新的一行。
  5. 右键单击空白行,然后从上下文菜单中选择插入代码段 > 转至页面。将打开“编辑转至页面操作”窗口。
  6. 从下拉列表中选择 all_records.jsp 作为目标页面。
  7. 单击确定
  8. 按钮的事件代码应该如下图所示:

    代码示例

    现在,一旦用户更新记录,页面将把浏览器引导至 all_records.jsp 页以便可看到该记录已被更新。删除按钮也应该将用户引回至 all_records.jsp 页。

  9. 重复步骤 1-7 以在 Web 页面上与删除按钮的同样方式编辑代码。
  10. 保存页面。

插入超链接

演示

现在,您将在 all_records.jsp 页上创建链接,以使用户可选择要更新的数据库记录。#{param.ID} 表示更新页面将要更新的记录的 ID 号。当用户单击某一记录的链接时,该记录的 ID 号将被发送至 update_record.jsp 页作为 #{param.ID} 参数。然后,刚才插入到 update_record.jsp 页中的已过滤关系记录将仅显示该记录以用于更新。

  1. 在“项目资源管理器”中,双击 all_records.jsp 文件以在编辑器中打开它。
  2. 单击数据表中的任何位置。
  3. 打开“属性”视图。
  4. 在“属性”视图中,从视图左边的 HTML 标记列表中单击 h:dataTable
  5. 在“属性”视图的右边,单击添加以添加新列。
  6. 在新列的标签字段中输入更新并按 Enter 键。就会在数据表中生成名为“更新”的列。
  7. 在“属性”视图中选择了新列后,单击下移直到“更新”列位于数据表的最右边。
  8. 在“选用板”视图中,单击 Faces 组件抽屉以展开该抽屉。
  9. 链接组件从“选用板”拖动到刚创建的“更新”列中。将打开“配置 URL”窗口。
  10. URL 字段中,输入 update_record.jsp 作为目标链接并在标签字段中输入更新列表
  11. 单击确定。 “更新列表”超链接即出现在“更新”列中。
  12. 在“更新”列中选择更新列表超链接旁边的链接图标 链接图标
  13. 在“属性”视图中,单击参数选项卡,它位于视图左边 hx:outputLinkEx 标记的下面。
  14. 单击添加参数然后在名称字段中输入 ID

    需要将 ID 参数绑定至输入表单中的 ID 列。将超链接参数绑定至数据列表的 ID 列意味着单击超链接时,请求参数将是列表中的记录的 ID。

  15. 选择字段,然后单击字段中的选择页数据对象 按钮。将打开“选择页数据对象”窗口。
  16. 数据对象下面,从 all_recordlist(ADS) 记录列表中单击 ID 列,如下图所示:

    “选择页数据对象”窗口

  17. 单击确定

    现在,当用户单击“更新列表”链接时,Web 站点将允许用户更新有关分类信息广告的信息。

  18. 保存该文件并测试该页面(如果愿意的话)。请记住,要先打开 all_records.jsp,因为这是链接至 update_record.jsp 的页面。

在此练习中,您已经了解如何创建更新数据库中记录的 Web 页面。现在,您可以开始进行练习 1.6:过滤关系记录列表了。

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.