練習 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:建立含資料連線的網頁」。
您已學會如何執行下列動作:
- 在網頁中顯示資料庫中的資訊
- 使用關聯式記錄、關聯式記錄清單和資料表
- 顯示、編輯、建立和刪除網頁中的資料庫記錄
- 利用超鏈結和組合框元件來鏈結至某記錄或某組記錄
新增進階特性
這個模組已介紹了 JavaServer Faces 技術和工具。
您還可以利用許多種方式來使您的網站更吸引人、更有用和更有效。
在下一個模組(模組 2:新增進階特性)中,您將學習如何採用這個範例分類廣告網站,將它轉換成較好看、較複雜的應用程式。
如果您要使網站看起來如下,請繼續進行下一個模組:
