应用程序显示目录中的所有当前职员记录。记录显示在具有可排序的列(包括姓、名、电子邮件和职员标识)的 JTable(employeesTable)中。要为该表获取记录,需要将 employeesTable 绑定至样本 Web Service 数据源返回的数据对象。
在此练习中,必须完成下列两个步骤:
为了获取本地数据对象以供 employeesTable 使用,将使用可视编辑器来将数据源添加至应用程序。该数据源会连接至样本 Web Service 代理,并且会发现可用于应用程序的服务方法。然后,将选择该数据源中可用的 getLightEmployeeRecord 服务方法。最后,将把应用程序中的 employeesTable 绑定至在行数据对象(lightEmployeeRecordRows)中返回的字段。
通过使用 Java 可视编辑器的内置绑定程序类,可以快捷地创建所有数据源和数据对象。可视编辑器提供了一组类属接口和类,它们是在将可视组件绑定至数据工厂时生成到项目中的。缺省情况下,绑定程序类生成到名为 jve.generated 的包中。可视编辑器将绑定程序类作为类属实现来提供,可以进一步定制并增强这些类以满足应用程序的需要。本教程演示了只对缺省绑定程序类进行基本和简单的操作时所表现出的强大功能和灵活性。
要点:在开始此练习之前,强烈建议先阅读下列帮助主题。这些主题可以帮助您更多地了解 Java 可视编辑器提供的数据对象、数据源和绑定程序所具有的功能和逻辑:
对于本教程,将在应用程序中使用 Web Service 数据源、几种类型的数据对象和几种类型的绑定程序。当将这些对象的实例添加至应用程序时,可视编辑器会将必需的类添加到项目的 jve.generated 包中,在这里您可以扩展、替换或重写数据绑定逻辑。通过在设计视图的自由格式区域中显示应用程序正在使用的数据对象、数据源和绑定程序,Java 可视编辑器可以提供对绑定对象的可视支持。可视编辑器会在可视组件、数据对象和数据源之间绘制一些线,以显示任何选择的对象的当前绑定。
下图是可视组件、绑定程序、数据对象和数据源交互方式的简要概述。在本教程中构建的应用程序说明了对绑定程序的稍微复杂和更具创意的使用。此图没有准确地表示要构建的样本应用程序中的绑定程序、数据对象和数据源。
图 1. 此图说明可视组件、绑定程序、数据对象和数据源之间的样本关系。
在图 1 中,每个可视组件都有它自己的绑定程序,该绑定程序将可视组件与数据对象相关联,如果可视组件为按钮,则将可视组件与数据源相关联。文本字段的绑定程序将字段绑定至数据对象的特定属性。此图中的行数据对象和数据对象的数据都来自对数据源中的服务的直接调用。文本字段的数据对象使用表中所选行的键值作为它用来调用 Service2 的自变量,Service2 会返回可能包括有关表中所选行的更多信息的完整记录。同样,此完整记录又用作按钮的操作绑定程序在调用 Service3 时的自变量,Service3 可能是更新在字段中输入的值的方法。有关数据对象、数据绑定程序和数据源的更详细说明,访问先前提供的链接。
为了使用在服务器上运行的 Web Service,Java 应用程序要求 Java 代理或客户机与它交互。通过使用 WSDL 文件,可以使用“Web Service 客户机”向导来将 Java 代理生成到 Java 项目中。MyDirectory 项目包括将用来生成此代理的 EmployeeDirectory.wsdl 文件。在生成 Java 代理之后,可以创建表示 Web Service 的数据源并开始对可视组件进行绑定。
要点:本练习中使用的 WSDL 文件假定您已将 Web Service 部署在 WebSphere Application Server 的本地安装中并且使用了本地主机的缺省端口(http://localhost:9080)。如果以不同方式部署了 EAR 文件,则在继续之前必须相应地编辑该 WSDL 文件。
要在项目中生成 Web Service Java 代理:
因为 employeesTable 是在此应用程序中要绑定的第一个可视组件,所以需要创建一个数据源以指向刚才添加至项目的样本 Web Service 代理。当在后面的练习中绑定其它可视组件时,您将重用此数据源。在此步骤中,将添加 Web Service 数据源和 lightEmployeeRecordRows 数据对象。
要绑定 EMPLOYEE 表:
提示:因为正在绑定表,所以“新建数据源数据对象”对话框只显示返回行数据对象的服务。在这种情况下,getLightEmployeeRecords() 方法是返回对象数组的唯一可用服务。
技巧:在绑定完表之后,可以总是返回至绑定属性,并且可以随时重命名这些列和对它们重新排序。
现在,通过使用 JRowTableBinder 已将 employeesTable 绑定至
lightEmployeeRecordRows 数据对象。如果在自由格式区域上单击
lightEmployeeRecordRows 数据对象,则可视编辑器会绘制一条从该数据对象至表的线。在这条线上,JRowTableBinder 用表绑定程序 图标表示。会有另一条线指示数据对象使用 webServiceDataSource 作为它的数据源。
检查对项目和应用程序所作的更改。在此练习期间,您已添加 Web Service 数据源、行数据对象和将 employeesTable 绑定至该行数据对象的绑定程序。注意检查新包(jve.generated),它是在项目中创建的以存放 Java 可视编辑器生成的所有绑定程序类。还要注意新包(directory.service),它存放 Web Service 的 Java 代理。
现在,当运行应用程序时,EMPLOYEE 表会由 Web Service 使用现有职员记录来填充。