练习 1.5:创建更新页面
在开始之前,必须完成练习 1.4:创建新的记录。
此时,您已经创建了用于查看和创建 Web 站点列表的页。在此练习中,您将创建允许用户更新和删除列表的页面。更新页面与创建页面看起来几乎完全相同,不同之处是在更新页面上,输入字段将显示现有记录的数据以供用户更改。
首先,您将创建一条关系记录,它表示数据库中的一条现有记录。接下来,将为此关系记录创建 JavaServer Faces 更新表单;稍加更改之后,就可以测试您的页面了。
创建更新关系记录
- 通过在“项目资源管理器”视图中双击 update_record.jsp 文件来打开该文件。
- 删除缺省文本将内容放在此处。
- 在“选用板”视图中,单击数据抽屉以展开该抽屉。
- 将关系记录组件从“选用板”拖动到空白内容区域上。将打开添加关系记录窗口。
- 在名称字段中,输入 update_record。
- 在为以下项创建控件下面,单击更新现有记录。
- 确保选择了添加输入/输出控件以在 Web 页面上显示关系记录选项。
- 单击下一步。
- 在表框中单击 W5SAMPLE.ADS 表。
- 单击下一步。
将打开“选择列和其它任务”页面。
过滤结果
关系记录仅可显示数据库中的一条记录。因此,您必须过滤数据库表以便仅显示一条记录来供用户编辑。(您不需要过滤上一个练习中的数据库,因为您创建了新记录,所以没有来自数据库的要过滤的结果。)由于数据库中的每条记录都具有唯一的 ID 号,所以将把结果过滤为具有给定 ID 号的一条记录。
- 在任务下面,单击过滤结果。将打开“过滤”窗口,并且在过滤列中插入缺省过滤条件 ID = #{param.ID}。
“过滤”窗口看起来应类似于下图:

此代码会过滤数据库中的记录,以使只有具有指定 ID 号的记录才会出现在关系记录中。您将在此练习中稍后描述的“插入超链接”一节了解到有关此条件的更多内容。
- 单击关闭。
- 单击下一步。
将打开“配置数据控件”页面。
- 在要显示的字段部分,清除每个字段名旁边的复选框(您想要显示在输入表单中的那些字段名除外):
- ID
- TITLE
- DESCRIPTION
- MAINCATEGORY
- PRICE
- PHONE
- 通过单击上移或下移,将字段名按照自顶向下的顺序重新排序,如下所示:
- ID
- TITLE
- DESCRIPTION
- MAINCATEGORY
- PRICE
- PHONE
- 对于 ID 字段,从控件类型列的下拉列表中选择输出字段。
虽然您希望用户能够查看记录的 ID 号,但是不希望他们能够更新它。将 ID 字段创建为“输出”字段将有助于避免产生重复 ID 的问题。
- 单击选项。将打开选项窗口。
- 确保选择了提交按钮选项。
- 在标签字段中输入更新。
- 单击确定。
- 添加关系记录窗口看起来应该类似于下图:

- 单击完成以在页面上生成更新表单,如下图所示:

对“更新”按钮编程
此外,将添加代码以使用户能够查阅 all_records.jsp 页来显示更改过的记录以及所有其它记录。
- 单击刚才在 Web 页面上创建的更新按钮。
- 打开“快速编辑”视图。
- 在“快速编辑”视图中,进行单击以将光标就放在代码 return ""; 前面。
- 按 Enter 键。将在 return ""; 前面出现新的一行。
- 右键单击空白行,然后从上下文菜单中选择插入代码段 > 转至页面。将打开“编辑转至页面操作”窗口。
- 从下拉列表中选择
all_records.jsp 作为目标页面。
- 单击确定。
- 按钮的事件代码应该如下图所示:

现在,一旦用户更新记录,页面将把浏览器引导至 all_records.jsp 页以便可看到该记录已被更新。删除按钮也应该将用户引回至 all_records.jsp 页。
- 重复步骤 1-7 以在 Web 页面上与删除按钮的同样方式编辑代码。
- 保存该页面。
现在,您将在 all_records.jsp 页上创建链接,以使用户可选择要更新的数据库记录。#{param.ID} 表示更新页面将要更新的记录的 ID 号。当用户单击某一记录的链接时,该记录的 ID 号将被发送至 update_record.jsp 页作为 #{param.ID} 参数。然后,刚才插入到 update_record.jsp 页中的已过滤关系记录将仅显示该记录以用于更新。
- 在“项目资源管理器”中,双击 all_records.jsp 文件以在编辑器中打开它。
- 单击数据表中的任何位置。
- 打开“属性”视图。
- 在“属性”视图中,从视图左边的 HTML 标记列表中单击 h:dataTable。
- 在“属性”视图的右边,单击添加以添加新列。
- 在新列的标签字段中输入更新并按 Enter 键。就会在数据表中生成名为“更新”的列。
- 在“属性”视图中选择了新列后,单击下移直到“更新”列位于数据表的最右边。
- 在“选用板”视图中,单击 Faces 组件抽屉以展开该抽屉。
- 将链接组件从“选用板”拖动到刚创建的“更新”列中。将打开“配置 URL”窗口。
- 在 URL 字段中,输入 update_record.jsp 作为目标链接并在标签字段中输入更新列表。
- 单击确定。“更新列表”超链接即出现在“更新”列中。
- 在“更新”列中选择更新列表超链接旁边的链接图标
。
- 在“属性”视图中,单击参数选项卡,它位于视图左边 hx:outputLinkEx 标记的下面。
- 单击添加参数然后在名称字段中输入 ID。
需要将 ID 参数绑定至输入表单中的 ID 列。将超链接参数绑定至数据列表的 ID 列意味着单击超链接时,请求参数将是列表中的记录的 ID。
- 选择值字段,然后单击字段中的选择页数据对象
按钮。将打开“选择页数据对象”窗口。
- 在数据对象下面,从 all_recordlist(ADS) 记录列表中单击 ID 列,如下图所示:

- 单击确定。
现在,当用户单击“更新列表”链接时,Web 站点将允许用户更新有关分类信息广告的信息。
- 保存该文件并测试该页面(如果愿意的话)。请记住,要先打开 all_records.jsp,因为这是链接至 update_record.jsp 的页面。
在此练习中,您已经了解如何创建更新数据库中记录的 Web 页面。现在,您可以开始进行练习 1.6:过滤关系记录列表了。