练习 1.6:过滤关系记录列表
在开始之前,必须完成练习 1.5 创建更新页面。
现在,您已经了解了如何使用关系记录列表来显示表中的所有记录,以及如何对关系记录应用过滤条件以挑选出特定记录。接下来,您将了解如何仅显示符合特定条件的那些记录,从而使用户能够按类别查看分类信息广告。
与更新页面一样,您将根据从超链接传递至页面的包含期望类别的参数进行过滤。因为可能有多条记录属于该类别,所以将把过滤应用于关系记录列表而不是关系记录。
创建已过滤的关系记录列表
创建已过滤的关系记录列表包括过滤列表这个额外步骤,以便只显示某些记录。与创建 update_record.jsp 页的情况相似,您将在 all_records.jsp 页中指定一个参数并使用链接来将该参数发送至 filtered_records.jsp 页。
- 通过在“项目资源管理器”视图中双击 filtered_records.jsp 文件来打开它。
- 除去缺省文本。
- 通过将关系记录列表从“选用板”拖至页面上来创建关系记录列表。将打开“添加关系记录列表”窗口。
- 将此记录列表命名为 filtered_recordlist。
- 确保选择了添加数据控件并单击下一步。
- 单击 W5SAMPLE.ADS 表。
- 单击下一步。
- 在任务下面,单击过滤结果。将打开“过滤”窗口。
- 要创建过滤条件,单击条件选项卡上的“添加”
按钮。将打开“条件”窗口。
- 从列下拉列表中选择 MAINCATEGORY 列。
- 在值字段中输入 #{param.CAT}。此代码在运行时的值等于请求参数 CAT 的值。
“条件”窗口看起来应类似于下图:

- 单击确定以将过滤条件应用于关系记录列表。此条件列示在“条件”选项卡上。
- 单击关闭。
- 单击下一步。
- 您又要从不同的列中选择要显示在数据表中的列。只选择以下列:
- TITLE
- DESCRIPTION
- MAINCATEGORY
- PRICE
- PHONE 列
- 按照以下顺序排列这些列:
- TITLE
- DESCRIPTION
- MAINCATEGORY
- PRICE
- PHONE
“添加关系记录列表”窗口看起来应类似于下图:

- 单击完成。这就将关系记录列表添加到了页面中。它类似于出现在
all_records.jsp 页上的记录列表,但因为它按类别进行了过滤,所以它一次将只显示一个类别中的记录。
- 保存页面。
页面看起来应该类似于下图:

从 all_records.jsp 进行链接
与更新页面一样,现在您需要在 all_records.jsp 文件中创建一个超链接,该超链接不仅将浏览至 filtered_records.jsp 文件,还将传递 CAT 参数来过滤关系记录列表。
- 打开 all_records.jsp 文件。
- 在“选用板”视图中,展开 Faces 组件抽屉。
- 将链接组件从“选用板”直接拖动到数据表上的 {MAINCATEGORY} 输出控件。将打开配置 URL 窗口。
- 在 URL 字段中,输入 filtered_records.jsp 作为目标页面,并让标签字段保留为空白。
将链接直接拖动到输出控件上并使“标签”字段保留为空白会使得超链接使用 {MAINCATEGORY} 文本作为超链接标签。
- 单击确定。
- 单击链接图标
然后单击“属性”视图中的参数选项卡。
- 单击添加参数以创建新的参数。
- 在名称字段中为新参数输入 CAT。
- 要将 CAT 参数绑定至输入表单中的 MAINCATEGORY 列,选择值字段,然后单击该字段中的选择页数据对象
按钮。将打开“选择页数据对象”窗口。
- 在数据对象字段中,从 all_recordlist(ADS) 关系记录列表中单击 MAINCATEGORY 列。
- 单击确定。
- 保存页面并测试它。当单击类别名时,将会出现 filtered_records.jsp 页,它只显示该类别中的分类信息广告。
祝贺您!
您已经完成了“模块 1:创建具有数据连接的 Web 页面”。您已了解如何完成下列任务:
- 在 Web 页面上显示数据库的信息
- 使用关系记录、关系记录列表和数据表
- 在 Web 页面中显示、编辑、创建和删除数据库记录
- 使用超链接组件和组合框组件链接一条或一组记录
添加高级功能
此模块向您介绍了 JavaServer Faces 技术和工具。您还可以做更多的事情来使您的站点更具吸引力、更可用且效率更高。在下一个模块(即,模块 2:添加高级功能)中,您将学习如何使用这个简单的分类信息广告站点并使它成为一个更复杂而且视觉效果更好的应用程序。如果您想了解如何使您的站点成为下图所示的样子,请继续进行下一个模块:
