應用程式會列出目錄中的所有現行員工記錄。 這些記錄顯示在含有姓氏、名字、電子郵件和員工 ID 等可排序直欄的 JTable (employeesTable) 中。如果要取得表格記錄,您必須將 employeesTable 連結至範例 Web 服務資料來源所傳回的資料物件。
在這個練習中,您必須完成下兩個步驟:
為了取得要用的 employeesTable 本端資料物件,您將利用視覺化編輯器來新增資料來源至應用程式。 資料來源會連接至 Web 服務 Proxy 範例,且會探索您的應用程式能夠使用的服務方法。 之後,您將選擇從資料來源提供的 getLightEmployeeRecord 服務方法。 最後,您會將應用程式中的 employeesTable 連結至在列資料物件 (lightEmployeeRecordRows) 中傳回的欄位。
您可以利用 Java 視覺化編輯器的內建連結程式類別,又快又容易地建立所有這些資料來源和資料物件。 當您將視覺化元件連結至資料 Factory 時,視覺化編輯器會提供一組產生在專案中的通用介面和類別。 依預設,連結程式類別會產生在名稱為 jve.generated 的套件中。 視覺化編輯器會將連結程式類別提供成一項通用實作,供您進一步自訂和加強來配合您的應用程式需求。 這個指導教學示範預設連結程式類別基本又簡單的用法所擁有的功能和彈性。
重要事項:在開始這個練習之前,強烈建議您先閱讀下列說明主題。這些主題可協助您進一步瞭解由 Java 視覺化編輯器所提供的資料物件、資料來源和連結程式所含的功能和邏輯:
在這個指導教學中,您將在應用程式中使用 Web 服務資料來源、若干類型的資料物件,以及若干類型的連結程式。 當您將這些物件的實例新增到應用程式中,視覺化編輯器會將必要的類別新增到專案的 jve.generated 套件中,您可以在其中延伸、取代或改寫資料連結邏輯。Java 視覺化編輯器提供了連結物件的視覺化支援,它會在設計視圖的開放式區域中,顯示應用程式所用的資料物件、資料來源和連結程式。視覺化編輯器會在視覺化元件和資料物件及資料來源之間繪製線條來顯示任何所選物件的現行連結。
下圖是視覺化元件、連結程式、資料物件和資料來源如何互動的簡單概觀。 您在這個指導教學中建置的應用程式說明稍微複雜且較有創意的連結程式用法。 這個圖不一定能完全如實反映您在建置的應用程式範例中的連結程式、資料物件和資料來源。
圖 1. 這個圖說明視覺化元件、連結程式、資料物件和資料來源之間的關係範例
在圖 1 中,每個視覺化元件都有它自己的連結程式會將它關聯於資料物件,如果是按鈕,則是關聯於資料來源。 文字欄位的連結程式會將該欄位連結到資料物件的特定內容。這個圖解中的列資料物件和資料物件,都會直接呼叫資料來源的服務來取得其資料。文字欄位的資料物件會利用表格中所選的列中的鍵值來作為呼叫 Service2 的引數,這個呼叫會傳回完整的記錄,其中可能包括表格中所選的列的詳細資訊。之後,這個完整記錄又用來作為按鈕呼叫 Service3 時,按鈕動作連結程式的引數,Service3 可能是更新欄位中所輸入之值的方法。如果需要資料物件、資料連結程式和資料來源的詳細說明,請遵循先前所提供的鏈結。
如果要使用在伺服器中執行的 Web 服務,您的 Java 應用程式需要一個與它互動的 Java Proxy 或用戶端。 您可以利用「Web 服務用戶端」精靈和 WSDL 檔,在 Java 專案中產生一個 Java Proxy。 您的 MyDirectory 專案包括將用來產生這個 Proxy 的 EmployeeDirectory.wsdl 檔。 產生 Java Proxy 之後,您可以建立代表 Web 服務的資料來源並開始連結視覺化元件。
重要事項:這個練習中所用的 WSDL 檔假設您將 Web 服務部署在 WebSphere Application Server 的本端安裝架構中,且使用 localhost 的預設埠 (http://localhost:9080)。 如果您以不同的方式來部署 EAR 檔,您必須據此編輯 WSDL 檔之後,才能繼續作業。
如果要在專案中產生 Web 服務 Java Proxy,請執行下列動作:
由於 employeesTable 是您在這個應用程式中連結的第一個視覺化元件,因此,您必須建立一個資料來源來指向剛新增到專案中的 Web 服務 Proxy 範例。 當您在稍後的練習中連結其他視覺化元件時,您會重複使用這個資料來源。 在這個步驟中,您將新增 Web 服務資料來源和 lightEmployeeRecordRows 資料物件。
如果要連結員工表,請執行下列動作:
要訣:由於您正在連結表格,因此,「新建資料來源資料物件」對話框只會顯示傳回列資料物件的服務。 在這個情況下,getLightEmployeeRecords() 方法是唯一傳回物件陣列的可用服務。
要訣:連結好表格之後,您一律可以隨時返回連結內容並重新命名和重新排列直欄。
這時會利用 JRowTableBinder,將 employeesTable 連結至 lightEmployeeRecordRows 資料物件。
如果您在開放式區域中按一下 lightEmployeeRecordRows 資料物件,視覺化編輯器會畫一條從資料物件至表格的線。
在這條線上,JRowTableBinder 是由表格連結程式的圖示來表示。另一條線表示資料物件使用 webServiceDataSource 來作為資料來源。
請檢查您的專案和應用程式的變更。 在這個練習期間,您新增了 Web 服務資料來源、列資料物件,以及將 employeesTable 連結至列資料物件的連結程式。 請注意和檢查您的專案中所建立用來保留 Java 視覺化編輯器所產生的所有連結程式類別的新套件 (jve.generated)。 另外,也請注意保留 Web 服務之 Java Proxy 的新套件 (directory.service)。
現在,當您執行 應用程式時,Web 服務會在員工表中移入現有的員工記錄。