IBM WebSphere Portlet Factory 7.0.1 說明文件

第一版

2011 年 6 月

關於此版本

與 IBM 對可存取性的承諾一致,本版產品說明文件是可存取的。

列印

當您列印此文件時,會移除部分樣式元素,以建立更好的列印輸出。這裡是一些關於列印的提示:
  • 文件長度可能超出瀏覽器的列印能力。Microsoft Internet Explorer 已示範成功列印大型檔案的能力。
  • 此文件是長文件。使用預覽列印,可以決定列印的頁長。
  • 您可以強調顯示文件的某些小節,然後選擇僅列印選取的內容。

離線工作

您可以從瀏覽器儲存此文件的本端副本。每一個瀏覽器的功能表和功能表選項不同。本端儲存文件時,如需協助,請參閱瀏覽器說明。

提交建議與意見

如果要提供關於此文件的建議與意見,請參閱提交建議與意見網站。

繼續學習

IBM® WebSphere® Portlet Factory 學習資源的更多鏈結。

建置器說明

其他文件

IBM WebSphere Portlet Factory Designer 的概觀

WebSphere Portlet Factory Designer 整合至 Eclipse 開發環境。

WebSphere Portlet Factory Designer 是用於開發 Java 2 Platform Enterprise Edition (J2EE) Web 應用程式、Portlet 及要發佈至 IBM Lotus Mashups 之小組件的工具。

WebSphere Portlet Factory Designer 是 Eclipse 型整合開發環境 (IDE) 的外掛程式。 在 Eclipse 的 WebSphere Portlet Factory 視景中工作,您可以建立專案,在其下使用建置器及設定檔集來開發模型,並從那些模型產生結果 Web 應用程式。

每個建置器都具有精靈使用者介面,透過該使用者介面可以指定輸入。 建置器會自動產生或修改應用程式的某些部分。 設定檔集中的設定檔可讓您調整一個應用程式並產生多個版本,例如,不同人類語言或不同使用者群組的不同版本。

在模型中組合建置器,可實作使用者介面或資料服務。 如果您變更模型中建置器的輸入,則會重新產生應用程式碼。 重新產生程式碼可讓您重複開發應用程式。 建置器會產生所有必要的應用程式碼,包括 JSP、Java 類別及 XML 文件。 使用建置器來實作設計型樣,以協助疊代式開發。

IBM WebSphere Portal 伺服器架構會提供多個服務,例如頁面導覽及協同作業特性。

WebSphere Portlet Factory Designer 還可協助您建立新的建置器及設定檔。

使用 WebSphere Portlet Factory Wiki

WebSphere Portlet Factory Wiki 上,您可以找到安裝和開發應用程式相關的補充內容。 此 Wiki 非常活躍,因此您應該定期移出。

WebSphere Portlet Factory Wiki

我們需要您分享您的專業知識! 註冊對此活躍的開發人員社群作出貢獻。

關於使用 WebSphere Portlet Factory Designer 說明

WebSphere Portlet Factory Designer 會提供所有特性及功能的上下文相關說明。 您可以使用數種方式來存取說明:

  • F1

    所有 WebSphere Portlet Factory Designer 視窗及對話框都會提供上下文相關說明,用來說明視窗或對話框所支援的作業。 若要檢視此說明,請將指標置於建立環境定義的視窗或對話框中,然後按 F1 鍵。

  • 說明按鈕

    建置器呼叫編輯器會提供說明按鈕,可以用來存取建置器的配置說明。

  • Eclipse 說明功能表項目

    WebSphere Portlet Factory 會將文件外掛程式安裝至「Eclipse 說明」系統。 此外掛程式在 Eclipse 說明引擎的環境定義內執行,而且可以從 Eclipse 說明功能表存取。 若要從 Eclipse 說明功能表存取 WebSphere Portlet Factory 說明,請按一下說明 > 說明內容。 即會開啟「Eclipse SDK 說明」視窗。 在內容下,按一下 IBM WebSphere Portlet Factory Designer

本版次的新增功能

此版本的 IBM WebSphere Portlet Factory 提供許多新增特性。

行動式支援

您可以將新的特性集(使用者介面 > 行動式)新增至專案,以提供下列支援來產生絕佳行動式 Web 體驗。
行動式資料佈置範本
提供含可配置選項的捲動清單,例如,縮圖影像及含多個樣式的多行文字。(透過新的「資料佈置」建置器使用。)
行動式導覽範本
提供具有原生外觀的導覽標籤及清單。(透過新的「頁面導覽」建置器使用。)
地理位置支援
在無需撰寫程式碼的情況下,啟用對裝置地理位置資料的存取。(使用新的「地理位置」建置器。)
行動式使用者介面 (UI) 佈景主題
提供針對「智慧型手機」最佳化的外觀與操作方式。
行動式豐富型資料定義程式庫
提供行動式使用者介面控制項的自動支援,例如,可選取的清單、數字鍵盤輸入、電話號碼、電子郵件及作用中文字。
行動式裝置類型設定檔集
提供多通道支援。(使用 mobile_devicetype_base 設定檔集。)

建置器

新建置器
下列是此版次中的新建置器。
作用中的文字
「作用中的文字」建置器延伸了「文字」建置器,可協助將頁面上的文字呈現為作用中的鏈結,其字首為指定的 URI 架構。
用戶端可見性 Setter
「用戶端可見性 Setter」建置器可讓您管理模型中頁面自動化元素的可見性。
CMIS 文件存取
「CMIS 文件存取」建置器會在 CMIS 儲存庫中建立存取文件的資料服務。
資料佈置
「資料佈置」建置器使用指定的資料佈置範本及佈置欄位對映,來修改「資料頁面」建置器所產生的佈置。
欄位對映程式
「欄位對映程式」建置器會將頁面自動化欄位對映至您指定之頁面上的元素。
地理位置
「地理位置」建置器可以從受支援的裝置提取地理位置資訊。
延遲載入
「延遲載入」建置器會在給定頁面位置所在的區域變得可見時,安排載入該位置中的內容。
Lotus Web Content Management 編寫
此建置器會建立及修改來自 IBM Lotus Web Content Management 儲存庫的內容。
頁面導覽
「頁面導覽」建置器可在模型的指定頁面位置,呈現導覽結構。
樣式 Setter
「樣式 Setter」建置器會將類別或樣式新增至指定頁面上的任何指定元素。
轉換聚集
「轉換聚集」建置器透過一組類似於部分 SQL 聚集函數的函數,提供資料聚集功能。
WebSphere Portal 分析
使用此建置器,可以對標題為 asa.portlet.screen.title 且 ID 為 asa.portlet.screen.id 的頁面進行註釋,該標題是顯示在 Portlet 中的畫面或視圖的本地化標題,該 ID 為顯示在「WebSphere Portal 作用中網站分析 (ASA)」所定義的 Portlet 微格式標籤中的畫面或視圖的唯一 ID。
新增建置器特性
下列建置器支援新增特性。
屬性 Setter
您現在可以在同一頁面的多個標籤上設定屬性。
Dojo 調節器
使用新輸入,您可以控制數值或百分比標籤的數字格式。
Lotus Web Content Management 存取
使用新的輸入,您可以依 DocumentId 擷取內容。
Portlet 配接器
您可以在新建置器輸入中指定其他語言環境。
服務定義、服務消費者
兩個建置器都支援定義可以由消費者模型使用的參考表 meta 資料。消費者模型可以自動建立新增至模型的參考表及標籤綱目,以便可以使用參考表。
試算表匯出
利用新的選項,您可以使用以逗點區隔值 (CSV) 的格式匯出至檔案。現在,從間接參照以 Excel 格式匯出的試算表以原生 .XLS 格式匯出。此動作會促進與更廣泛檢視器公用程式的相容性。
轉換過濾器
過濾條件輸入中的新「運算子」選項,可讓您比對正規表示式。
轉換修改
動作輸入中的新選項可讓您取代正規表示式,並轉換 IXml 物件。
已淘汰的建置器
下列建置器已在此版次中淘汰。
  • Bean MasterDetail
  • 資料視圖
  • Domino 視圖及表單
  • 檔案選擇器
  • 頁框
  • JSP Proxy
  • PeopleSoft 視圖及表單
  • SAP 視圖及表單
  • Siebel 視圖及表單
  • Web 服務啟用

已淘汰建置器之說明中的資訊,會建議採取哪些方法來替代這些不再可用的建置器(如果有的話)。

使用者體驗

下列特性已新增至 WebSphere Portlet Factory Designer。

模型精靈
新精靈(服務消費者 > 行動式清單及明細服務消費者)提供適合在智慧型手機或其他行動式裝置上顯示的模型。另一個新精靈(服務提供者 > 空的服務提供者)會建立您可以新增服務的裸模型。同時,會更新許多模型以包括「資料欄位設定」建置器。
應用程式樹狀結構
現在,會顯示資料服務作業的輸入及結果。
設計視圖
會顯示插入的頁面,以便您可以更輕鬆地查看所包含的模型。現在,會顯示套用至頁面上元素的樣式。
內容視圖包含樣式資訊
使用「內容」視圖中的樣式資訊,您可以控制頁面元素的「背景」、「字型」及「邊距」內容。
建置器挑選器 (Builder picker)
建置器選取器會提供新的特性。
過濾控制項
使用圓鈕,您可以限制只顯示適用於使用者介面模型的那些建置器,或者只顯示特定於資料提供者模型的那些建置器。同時,依預設,不會顯示不常用的建置器。
建置器手冊
在建置器選取器上,您可以按一下建置器手冊,以顯示關於使用哪些建置器來執行一般應用程式開發工作的說明。
取得模型報告
專案功能表上,您可以按一下建置模型報告,以針對現行專案執行分析。如此即會建立報告,其中包含專案中模型及建置器的詳細資料。
使用選用區的範本修改頁面佈置
使用選用區中可存取之所提供或本端開發的資料佈置範本,您可以修改「資料頁面」建置器(或使用「資料頁面」建置器之建置器)所建立的頁面佈置。
發佈應用程式
現在,使用建立測試入口網站網頁選項,在您發佈至 IBM WebSphere Portal 伺服器時,伺服器配置可以支援自動在專案中建立 Portlet 模型的測試入口網站網頁。
將 Eclipse 作業新增至模型
您現在可以使用建置器呼叫編輯器內容中的註解欄位,在模型中包含資訊,以指示要完成的作業。 WebSphere Portlet Factory Designer 使用標籤名稱 TODO 及 FIXME,以及 Eclipse 中現有的作業機制,來顯示、組織及導覽至正確的建置器,並設定其優先順序,以執行作業。
新的說明指令
說明功能表具有下列新指令。
存取 IBM WebSphere Portlet Factory 資源
IBM WebSphere Portlet Factory 論壇
提供指向 IBM 支援中心頁面的鏈結,該頁面會列出指向 WebSphere Portlet Factory 客戶論壇的鏈結。
IBM WebSphere Portlet Factory Wiki
在瀏覽器視窗中顯示 WebSphere Portlet Factory 產品 Wiki 的首頁。
顯示「我的通知」修正套件通知
登入 IBM 支援中心入口網站的「我的通知」頁面。您可以進行訂閱,以通知您有關最新的產品修正程式及更新項目。
顯示 ReadMe 資訊主題
在「模型」編輯器中顯示在您建立新的專案或升級現行專案之後出現的主題。 本主題提供在專案中建立模型及發佈應用程式所執行步驟的摘要。
顯示建置器手冊
在動態說明視窗中顯示主題,向您介紹如何針對一般類型的應用程式開發作業,使用特定建置器。

一般

com.bowstreet.widget.StyleClassWidget
用於挑選樣式類別的新建置器編輯器小組件
Eclipse
WebSphere Portlet Factory Designer 安裝包含 Eclipse 3.6.1 版。

版本注意事項 - IBM WebSphere Portlet Factory 7.0.1

可以使用 WebSphere Portlet Factory 7.0.1 版。

說明

WebSphere Portlet Factory 7.0.1 版除了提供軟體錯誤修正程式之外,還提供下列新功能。
  • 適用於更豐富的使用者介面元素的新建置器
  • 使用者介面改進
如需相關資訊,請參閱本版次的新增功能主題。

如需 WebSphere Portlet Factory 7.0.1 版已解決的 APAR 清單,請參閱下列位置的修正程式清單。

WebSphere Portlet Factory 7.0.1 的已修正 APAR

公告

WebSphere Portlet Factory 7.0.1 版公告位於 www.ibm.com/common/ssi/index.wss。 請參閱公告以取得下列資訊。
  • 詳細的產品說明,包括新功能的說明
  • 產品定位聲明
  • 包裝及訂購詳細資訊
  • 國際相容性資訊

系統需求

如需軟硬體相容性的相關資訊,請參閱位於下列位置的詳細系統需求文件。

WebSphere Portlet Factory 7.0.1 版詳細系統需求

安裝 WebSphere Portlet Factory 7.0.1

如需逐步安裝指示,請參閱資訊中心的下列主題。

WebSphere Portlet Factory 產品安裝手冊

已知問題

已知問題記載在下列位置的 IBM 支援中心入口網站中。

http://www.ibm.com/support/entry/portal/Overview/Software/WebSphere/WebSphere_Portlet_Factory

一旦發現並解決問題之後,「IBM 支援中心」團隊便會更新知識庫。 搜尋知識庫可快速找到問題的暫行解決方法或解決方案。

下列鏈結會啟動「支援中心」知識庫的自訂查詢。

檢視 WebSphere Portlet Factory 7.0.1 的所有已知問題

IBM WebSphere Portlet Factory Designer 的高階概觀

探索何種 WebSphere Portlet Factory 適合您的 Portlet 開發團隊。 學習主要 Portlet Factory 概念、如何執行主要作業、建立資料服務、開發 Portlet 使用者介面、除錯技術以及用於發佈的最佳實務, 將其進行匯總,以加速及自動化入口網站介面中元件的大部分正式作業。 此手冊的 7.0.0 版包括 7.0.0 版及 6.1.5 版新增特性的相關資訊,例如,使用佈景主題及使用者介面控制項、REST 服務支援、加強的豐富型使用者介面以及新圖形「設計」視圖。

產品概觀

WebSphere Portlet Factory 是功能強大且靈活的工具,用於快速建置服務導向架構頂層的 Portlet。 開發人員可以輕鬆快速地使用他們公司的核心資產,從而自動將它們組合至自訂且價值高的 Portlet。 使用 WebSphere Portlet Factory 建立的 Portlet 是動態且健全的 Java 2 Enterprise Edition (J2EE) 應用程式,會自動反應變更,並可以由商業使用者進一步進行即時修改,從而符合變更商業的需求,而無需對資產進行任何程式撰寫、複製或版本化。 由於不需要對所有這些實作及其變式進行程式碼撰寫, WebSphere Portlet Factory 可以簡化開發、發佈及變更管理程序,從而節省公司的時間及費用。

WebSphere Portlet Factory 的主要特性如下所示:

  • 支援透過在 WebSphere Application Server CE 中獨立式執行 Portlet,來快速開發這些 Portlet。 此開發環境可將修改測試週期從幾分鐘減少為幾秒鐘,從而加強開發人員的生產力。
  • 自動建立多頁自訂 Portlet。 WebSphere Portlet Factory 快速應用程式開發 (RAD) 功能及易用性,讓所有技能的開發人員,均可以建立多頁且複雜的 Portlet。 開發人員可透過定義一系列調適性高的軟體元件(稱為建置器,具有易於使用的介面)來建置 Portlet。 開發人員可將建置器組合至模型,然後產生應用程式碼。 這樣,開發人員可以擷取及自動化建置動態 Portlet 的程序,而非明確對每個 Portlet 撰寫程式。 許多 Portlet 及型樣都可以利用現有的 WPF 建置器來建置,只需少許、甚至完全不需程式撰寫,但如果要建置類似 WebSphere Portlet Factory 精靈的建置器(封裝自訂商業型樣及邏輯),則還是需要進行程式撰寫。
  • 企業應用程式及資料的強大整合功能。 WebSphere Portlet Factory 可自動整合現有應用程式及資料,其中包括 SAP、Lotus Domino、PeopleSoft、Siebel、Web 服務、關聯式資料庫及 Excel。 開發人員可以快速建立複合且價值高的 Portlet,以便使用現有應用程式及資料的現有投資。
  • 自動與 IBM WebSphere Portal 整合。 透過 WebSphere Portlet Factory,您可以直接與 IBM WebSphere Portal 特性(例如 Portlet 佈線、點按動作、商業使用者配置、人員狀態提示、WebSphere Portal 群組及認證儲存庫)整合。 Portlet 會自動發佈至 WebSphere Portal 軟體。
  • 支援 SOA 開發。 WebSphere Portlet Factory 提供了用於加快建立服務導向應用程式及 Portlet 速度的強大技術。 其包括資料服務建置器及資料整合建置器,合在一起可將從系統(例如 SAP 及 IBM Lotus Domino®)建立服務的處理程序自動化。 此服務方法提供了分隔應用程式的後端服務與呈現層的易行方式。 此外,它也可以自動建立對後端服務的測試支援,並啟用前端呈現開發及測試,而無需後端連線。
  • 從單一程式碼庫建立許多 Portlet 變式。 透過 WebSphere Portlet Factory 的設定檔作業功能,開發人員可以從一個程式碼庫輕鬆建立多個 Portlet 變式,而無需變更或重新發佈任何其他程式碼。
  • 將經常出現的開發工作自動化。 透過建立新的建置器,開發人員及架構設計師可以擷取常用的設計型樣及公司特定的商業程序,作為所有開發人員可重複使用的元件,從而強制執行應用程式架構及開發最佳實務。
  • 自動與 Lotus Mashups 整合。 透過 WebSphere Portlet Factory,您可以直接與 Lotus Mashups 特性(例如「小組件自訂程式」及「小組件事件」)整合。 小組件可輕鬆地發佈至 Lotus Mashups 選用區。

架構概觀

本節從架構開始提供 WebSphere Portlet Factory 的技術概觀。

架構堆疊的第一層是資料來源。 資料可以源自許多不同系統,其中包括資料庫、企業應用程式(例如 SAP)、Domino 之類的協同平台,以及產品(例如「SAP 商業倉儲」)的歷程或分析資料。

下兩層(服務及 Portlet)均可以使用 WebSphere Portlet Factory Designer 進行開發。 Designer 工具是 Eclipse 外掛程式,可以在 Eclipse 型產品(例如 Rational Application Developer)中無縫執行。

最下層是 WebSphere Portal 伺服器架構,其中提供金鑰服務,例如,頁面導覽及建立工具、單一登入功能、使用者管理、內建程序伺服器,及協同作業特性(例如,即時傳訊)。

主要概念:建置器、模型及設定檔

使用 WebSphere Portlet Factory,開發人員會透過組合一系列稱為建置器的元件,建置 Portlet。 每個建置器都有類似精靈的簡式使用者介面,並執行自動產生或修改部分應用程式的工作。 建置器會實作應用程式設計型樣。

建置器可組合在模型中,類似於應用程式生產線。 每次在對模型中的任何建置器進行變更時,都會重新產生應用程式碼,從而允許開發人員反覆開發自訂 Portlet 應用程式。 某些建置器可以建立 WebApp 構件(例如頁面或表格),而其他建置器可以透過重新排列直欄、隱藏直欄或將直欄新增至表格,來修改先前的建置器所建立的構件。 建置器會產生所有應用程式碼,其中包括 JSP、Java 類別及 XML 文件。

此外,開發人員可以從一個程式碼庫建立多個 Portlet 變式,而無需變更或重新發佈其他程式碼。 這由 WebSphere Portlet Factory 的設定檔作業特性執行。 可以根據任何性質(例如區域、角色或群組成員資格),為不同使用者顧客群建立不同設定檔。 設定檔作業技術還可以用於支援執行時期配置,以便商業使用者可以透過簡式瀏覽器介面,來控制應用程式功能。 最終結果是, WebSphere Portlet Factory 可讓公司快速建立調適性應用程式,從而隨需回應變更,而這是某些傳統工具及技術所無法提供的。

歡迎使用新專案

建立您的新專案或升級現行專案之後,需要再完成一些步驟,以讓您的 Web 應用程式或小組件執行動作。

1. 建置模型

若要建立新模型,請按一下檔案 > 新建 > WebSphere Portlet Factory 模型

若要使用範例 Web 應用程式或小組件,請將「指導教學及範例」特性集併入專案,並使用「專案瀏覽器」來開啟 models/samples 資料夾中的其中一個檔案。

2. 發佈專案
在「專案瀏覽器」中,用滑鼠右鍵按一下專案,按一下發佈應用程式,選取伺服器並按一下確定 若要將專案中的小組件發佈到 IBM Lotus Mashups 伺服器,請用滑鼠右鍵按一下專案,然後按一下小組件 > 將小組件發佈至選用區。選取您要發佈的小組件,並按一下確定
3. 執行測試
若要測試您的模型,請在您將專案發佈至的伺服器上執行該模型。
  1. 在「專案瀏覽器」中,選取要測試的模型。
  2. 按兩下以開啟模型。
  3. 按一下執行圖示 「執行」圖示,綠色圓圈裡有一個白色三角形
4. 匯出供正式作業使用
若要將已完成的專案匯出至正式作業伺服器,請用滑鼠右鍵按一下專案並按一下匯出,然後對目標伺服器進行配置。 若要發佈專案中的小組件用於正式作業,請用滑鼠右鍵按一下專案,然後按一下匯出,並選取適用於您環境的正確 WAR。 按一下完成。 即會建立 WAR 檔。對於小組件,此檔案是您從 InfoSphere MashupHub 中下載或在 Lotus Mashups 伺服器上執行的套件檔。

IBM WebSphere Portlet Factory 介面

WebSphere Portlet Factory 提供豐富的使用者介面,可以編輯模型及設定檔,並可開發 Web 應用程式。

您可以在執行 WebSphere Portlet Factory Designer 時,使用IBM WebSphere Portlet Factory 視景。 此視景會提供特殊的功能表及其他特性,來支援編輯模型及建構 Web 應用程式。 按一下視窗 > 開啟視景 > 其他 > WebSphere Portlet Factory,以啟動此視景。 視窗的標題指出正在使用 WebSphere Portlet Factory 視景。 該視景使用 Eclipse 及 WebSphere Portlet Factory 視圖、「模型」編輯器及「設定檔」編輯器。

「套用的設定檔」視圖
「套用的設定檔」視圖會提供存取權,以將一個以上的設定檔套用至模型。

此視圖也可讓您在將多個設定檔套用至同一個模型時,管理設定檔的組合。 僅當在編輯區域中選取開啟的模型時,它才具有內容。 按一下視窗 > 顯示視圖 > 套用的設定檔,以顯示視圖。

問題視圖
WebSphere Portlet Factory Designer 使用「Eclipse 問題」視圖,來顯示與模型產生及行為相關的警告及錯誤訊息。當特定的建置器呼叫引起錯誤時,按兩下「問題」清單中的錯誤,即會在建置器呼叫編輯器中開啟相關的建置器呼叫以供編輯。
內容視圖
「內容」視圖會顯示選定建置器輸入及其在「應用程式樹狀結構」或「設計」畫面中選取的產生元素的現行設定。

您可以使用標準「Eclipse 內容」視圖,來檢查及變更模型中欄位的顯示及驗證設定。 按一下視窗 > 顯示視圖 > 其他 > 一般 > 內容,以顯示視圖。

作業視圖
WebSphere Portlet Factory Designer 使用「Eclipse 作業」視圖,來顯示在建置器呼叫編輯器「註解」欄位(按一下內容 > 註解以顯示項目)中輸入的作業。 支援 Java 編譯器作業標籤 FIXME 及 TODO。若要顯示該視圖,請按一下視窗 > 顯示視圖 > 其他 > 一般 > 作業
WebSphere Portlet Factory Wiki 視圖
此視圖會顯示設為顯示 WebSphere Portlet Factory 產品 Wiki 首頁的預設 Eclipse 瀏覽器。

此 Wiki 是與產品中最佳實務相關的 IBM 及社群內容的儲存庫。 按一下視窗 > 顯示視圖 > WebSphere Portlet Factory Wiki,以顯示視圖。使用視圖功能表列中的下拉清單,可以變更視圖中最初顯示的內容。

專案瀏覽器及模型導覽器視圖

「專案瀏覽器」是標準「導覽器」的加強版本。

「專案瀏覽器」對部分主要專案構件提供專案層次資料夾的存取權:Java 來源、模型及設定檔。 這些專案層次資料夾的提供是為了方便您使用 WEB-INF 目錄內資料夾中的檔案。 這樣排列資料夾可讓您存取構件,而無需展開該目錄。 若要使用這些資料夾中的檔案,請從特殊專案層次資料夾,或從專案檔案結構中資源實際所在的 WEB-INF 下的資料夾,導覽至那些檔案。

「專案瀏覽器」視圖會呈現一個樹狀型的目錄階層,顯示出組成現行專案的所有物件。 「專案瀏覽器」可讓您顯示 IBM WebSphere Portlet Factory 專案的完整樹狀結構、指定要在該樹狀結構中顯示的專案元件子集,以及對樹狀結構中選取的元素執行重構。 您可以瀏覽至物件 (例如模型或設定檔集) 並在其上按兩下,以開啟物件。 該物件即會顯示在適當的編輯器中。

「模型導覽器」視圖會呈現「專案瀏覽器」的子集,可讓您更輕鬆地存取專案中定義的模型及設定檔集。 按一下視窗 > 顯示視圖 > 模型導覽器,以顯示視圖。

在這兩個視圖中,您可以展開階層及過濾顯示畫面。

註: 請勿使用「專案瀏覽器」或「模型導覽器」視圖來重新命名專案構件 (例如,模型或設定檔集)。 因為 WebSphere Portlet Factory 會依據 ID 而不是依名稱來參照部分構件 (例如設定檔集),所以如果在「專案瀏覽器」或「模型導覽器」中重新命名構件,則在重新產生或執行模型時,會導致問題。

若要重新命名模型或設定檔集,請使用重構 > 重新命名指令。

Eclipse 及 Rational Application Developer 支援「專案瀏覽器」。 對於較早的 Eclipse 及 Rational Application Developer 版本提供模型、設定檔及 Java 來源的鏈結資料夾,讓使用者可以在標準「導覽器」中迅速地尋找及導覽至這些資源。

註: WebSphere Portlet Factory 內容只顯示在 WebSphere Portlet Factory 專案中。

從「專案瀏覽器」中過濾顯示畫面

您可以過濾不感興趣的類型,以控制「專案瀏覽器」顯示的元素類型。

例如,您可以只顯示專案使用的模型清單。
註: 對於要顯示在「專案瀏覽器」中的專案樹狀結構,必須同時選取 Portlet FactoryJava 元素資源

若要限制或展開「專案瀏覽器」樹狀結構中顯示的資源清單,請按一下「專案瀏覽器」導覽列上的功能表圖示 (功能表),然後按一下過濾器,在可用的過濾器選項中選取或清除勾選框。 選取過濾器會關閉該過濾器類型的可見性。 例如,若要只顯示專案使用的模型,請選取非模型來關閉所有非模型資源的可見性。

您也可以按一下過濾器對話框中的可用的內容,選取要在「專案瀏覽器」中顯示的資源,並清除不要顯示的資源,以限制要顯示的資源庫存。

顯示模型導覽器視圖

您可以使用「模型導覽器」視圖,來對顯示在 IBM WebSphere Portlet Factory Designer 中的內容進行過濾。

「模型導覽器」視圖可讓您只顯示專案模型和設定檔集,而不用顯示「專案瀏覽器」視圖中專案元件的完整庫存。

在 Eclipse 中,請執行下列步驟。

按一下視窗 > 顯示視圖 > 模型導覽器

即會在不同的窗格中顯示只含有模型和設定檔集資料夾的專案樹狀結構。 您可以從「模型導覽器」使用模型和設定檔集,就像在「專案瀏覽器」視圖中一樣, 但不需要導覽整個樹狀結構。

註: 如果從「專案瀏覽器」過濾出模型或設定檔集,這些資料夾仍會顯示在「模型導覽器」中。 「模型導覽器」是用來顯示專案模型和設定檔集,與「專案瀏覽器」視圖的內容無關。

呼叫「專案瀏覽器」

「專案瀏覽器」預設為顯示。

如果關閉「專案瀏覽器」,請按一下視窗 > 顯示視圖 > 其他,並選取一般 > 專案瀏覽器,就可以再次顯示它。

在「專案瀏覽器」中開啟資源時,該資源的相關資訊會顯示在編輯器的個別窗格中。 若要開啟資源,請用滑鼠右鍵按一下它,然後從產生的蹦現功能表中選擇開啟。 例如,當您開啟模型時,畫面上會出現「模型編輯器」。 其中包含下列標籤。

來源
顯示模型原始碼及有用的相關資訊,例如,內容及關聯。
設計
以圖形方式顯示在「應用程式樹狀結構」或「頁面」畫面中所選的使用者介面元素的建構。
模型 XML
顯示用於定義模型的 XML 程式碼。
建置器呼叫編輯器
顯示開啟建置器的相關資訊。

如果開啟設定檔集,則會顯示「設定檔編輯器」並附有它自己的一組標籤,以及一組按鈕,可讓您在集合中新增、編輯或刪除設定檔。 若要開啟個別的設定檔,您必須開啟設定檔集並在大綱中顯示其內容。

您可以在編輯器中重新命名建置器呼叫。

註: 強烈建議您不要使用這個功能,因為您的變更在系統中並不會一致。 如果您想要重新命名建置器呼叫,請從大綱而不是從編輯器執行此作業。

設定檔編輯器

IBM WebSphere Portlet Factory 中,設定檔編輯器可讓您建立及管理設定檔集。

位於 WebSphere Portlet Factory 視景「編輯區」頂端且包含設定檔集圖示 (設定檔集影像) 的標籤,可用來存取已開啟以供編輯的專案設定檔集。 具有焦點的標籤會顯示 X,並會移入所有視圖的內容。

如果標籤顯示星號 (*),則表示設定檔集中具有未儲存的變更。 設定檔編輯器包含下列已加上標籤的畫面:
管理設定檔
此畫面可讓您編輯設定檔項目。
項目
此畫面可讓您定義設定檔集中的設定檔項目。
選取處理常式
此畫面可讓您編輯設定檔選擇設定,並選擇設定檔選擇處理常式。

關於大綱視圖

IBM WebSphere Portlet Factory 視景中的「大綱」視圖會顯示您在編輯區中選取之模型的建置器呼叫清單。

目前選定模型的建置器呼叫清單,是依據模型中每個建置器呼叫的號碼、名稱或類型的清單。 已建立設定檔的建置器呼叫,會顯示一個設定檔圖示。 使用視圖工具列中的圖示,您可以產生現行模型或將建置器呼叫新增至模型。

「大綱」視圖支援蹦現功能表,其可讓您選取建置器呼叫並使用可用的指令 (例如,剪下、複製及貼上) 來管理清單中的建置器呼叫。

在建置器呼叫清單中,您可以拖放建置器呼叫,以重新排序。 建置器呼叫清單中的數字記號 (#) 指出建置器呼叫的數字順序。 清單中建置器呼叫的順序非常重要,這是因為如果建置器呼叫依賴於清單中稍後的另一個建置器呼叫,則該呼叫會失敗。 停用的建置器呼叫會呈現灰色。

您可以將名稱下方的指定輸入作為建置器中的名稱輸入。 如果您未輸入名稱,則會根據頁面位置產生名稱或顯示為 <無名稱>類型下方是指定實際建置器作為建置器挑選器的選定建置器。 另一個直欄會指出建置器呼叫是否具有相關聯的設定檔。

視圖功能表

在「大綱」視圖工具列中,「視圖」功能表會提供可管理建置器呼叫清單的指令。 全部展開指令會顯示所有建置器呼叫項目。 全部收合指令會隱藏其種類下的建置器呼叫項目。 這對縮短冗長清單非常有用。 可以使用下列指令。

在「視圖」功能表尾端,名稱清單會建議您可能想要新增至模型中的建置器。 只要按一下建置器名稱,便會將該建置器新增至您的模型中,並在編輯區中開啟建置器呼叫編輯器。

分組依據

使用「視圖」功能表中的分組依據指令,可以選取建置器呼叫在清單中的排列。 您會有下列選項。
種類
選取種類。 您可以隱藏該種類中的所有建置器呼叫。 拖放建置器呼叫會指派種類值。
註解
類似於依據「種類」分組,但清單中的任何「註解」建置器會作為種類使用。
相依關係
順序會根據「應用程式樹狀結構」中的相依關係資訊。 例如,「服務作業」會出現在其「服務定義」之下。 會停用拖放特性。
使用預設的依插入位置排序。 只有在依號碼排序時,才會啟用拖放特性。
類型
除了您可以隱藏整個群組之外,其類似於「排序方式」類型。 會停用拖放特性。

排序方式

排序方式指令可讓您以各種方式排列清單顯示畫面。 預設為數字順序。 您也可以按一下直欄標題,以排序建置器呼叫清單。

與應用程式樹狀結構鏈結

直欄包含每個所列出建置器呼叫的箭頭圖示,可讓您鏈結到其他視圖中的相關元素。 按一下此箭頭,以在「應用程式樹狀結構」及「頁面」視圖中強調顯示相關的元素。 此特性還會顯示及強調顯示「來源」視圖中的程式碼及「設計」視圖中的相關物件。 如果您在「視圖」下拉功能表中設定鏈結應用程式樹狀結構,則每次您在清單中選取不同的建置器呼叫時,「應用程式樹狀結構」視圖、「頁面」視圖、「來源」視圖及「設計」視圖中的強調顯示也會變更。 使用指令集時,箭頭圖示不會顯示在直欄中。 依預設不會設定指令,因為它增加 IBM WebSphere Portlet Factory Designer 的效能負荷。

欄數

使用「視圖」功能表中的直欄指令,可以控制建置器呼叫清單中直欄的順序與外觀。

建置器呼叫清單

建置器呼叫清單包含用來定義模型的所有建置器呼叫。

建置器呼叫清單會在開啟某個模型進行編輯時,呈現在開發環境的「大綱」視圖中。 建置器呼叫清單會顯示模型中每個建置器呼叫的序號、名稱及類型,並指出是否已對建置器呼叫建立設定檔。

您可以使用建置器呼叫清單,以進行建置器呼叫排序、過濾及分類。 若要管理清單中的建置器呼叫,請選取該呼叫,然後使用快速功能表 (右鍵) 中的可用指令 (剪下、複製、貼上等)。

停用的建置器呼叫會呈現灰色。

IBM WebSphere Portlet Factory 會依這些建置器呼叫在建置器呼叫清單中出現的數字順序,來執行這些建置器呼叫。 在每個建置器呼叫執行時,都會新增元素至 WebApp 物件,或修改 WebApp 物件中的元素。

當您從模型產生 Web 應用程式時, WebSphere Portlet Factory 會解析您在建置器呼叫輸入使用的任何間接參照,並將適當設定檔的值提供給任何已建立設定檔的建置器呼叫輸入。

因為建置器呼叫是以線性形式執行,所以在清單中放置建置器呼叫的順序十分重要。 例如,如果要在建置器呼叫輸入中參照方法傳回的值,請在新增現行建置器呼叫之前,先將該方法新增至 WebApp。

在您開發模型時,可能會新增無法存取其所需物件的建置器呼叫。 例如,如果您在要操作其元素的「資料頁」建置器呼叫之前新增或移動「資料欄位修飾元」建置器呼叫,則 WebSphere Portlet Factory Designer 會顯示類似下面的警告:

Field selector "[page1]ShowEmployeeData/RowSet/Row/EMPNO" did not evaluate to any fields.
Ensure that this BuilderCall follows the corresponding Data Page BuilderCall.

在此情況下,將「資料欄位修飾元」建置器呼叫拖曳到「資料頁」建置器呼叫之下,就可以解決錯誤。

一般而言,當您將建置器呼叫新增至建置器呼叫清單時,請注意呼叫之間具有的相依關係。 請確定不要將呼叫置於依賴於尚未建立之呼叫 (或呼叫成品) 的清單中。 以由上到下的方式移入建置器呼叫清單,並確保您新增至清單的任何呼叫都只依賴位於其上的建置器呼叫。

註: 不論建置器呼叫清單的排序方式為何 (例如,依名稱或依類型的字母排序),建置器都會依建置器呼叫清單內建置器呼叫的數字順序來執行。
關於變更建置器呼叫清單的組織方式

使用下列建置器呼叫清單視圖選項,可以變更模型中建置器呼叫的顯示。

拖放
將建置器呼叫拖放至清單中的其他位置,就可以變更建置器呼叫的相對位置。
排序
按一下數字、名稱或類型直欄標頭,依英數順序來排列建置器呼叫清單。
過濾器
在圖形使用者介面 (GUI) 中進行過濾,以暫停顯示建置器呼叫清單視圖中所顯示的建置器呼叫。
關於使用建置器挑選器

建置器挑選器列出環境中可用的建置器,並為您提供透過選取建置器可新增至模型的方法。 使用顯示較少顯示較多以展開或收合此視圖。

依預設,建置器挑選器會顯示下列窗格:
  • 種類名稱

    此窗格提供協助您管理建置器及尋找相關建置器的資料夾。 所有提供的建置器都會至少指派一個種類,並且您可以根據它們在建置器挑選器中的種類,來檢視建置器。 部分建置器會出現在多個種類中。 您可以使用種類來組織建置器。 例如,按一下種類名稱下的頁面元素,會列出所有包含建立及操作頁面的建置器。

    全部
    列出可用的建置器。 如果您在清單上沒看見任何建置器,則可能需要升級專案版本,或使用專案內容來新增特性集。
    最近使用
    列出在現行工作區中工作時,從建置器挑選器存取的建置器名稱。
    新的或已更新
    列出版次內新增或更新的建置器。
    我的最愛
    列出已選取的建置器名稱。 若要新增至清單,按一下建置器名稱,再按一下加到我的最愛或按一下管理我的最愛,並使用顯示所有建置器名稱的對話框。

    使用管理我的最愛,可以從清單中移除項目。

    搜尋結果
    按一下搜尋結果,以在建置器下列出與您在搜尋框中儲存之關鍵字相關聯的所有建置器名稱。

    例如,如果您在建置器窗格頂端的搜尋框中輸入字母 p,則可捲動的下拉清單會顯示包含 p 的所有關鍵字。如果您輸入關鍵字page,則會顯示包含 page 的所有關鍵字。

    按一下關鍵字,即可讓其顯示在文字框中並儲存在搜尋結果中。 與該關鍵字相關聯的建置器名稱會顯示在建置器下。 按一下下拉清單中的最後一個項目 (包含所有的建置器關鍵字及您的搜尋詞彙),可將關鍵字新增至搜尋結果並在建置器下列出相關聯的建置器名稱。

    展開搜尋結果,以列出儲存的關鍵字。 按一下關鍵字,以將建置器下的清單限制為與該關鍵字相關聯的建置器名稱。

    「建置器挑選器」對話框關閉時會清除搜尋結果

    已分類的種類
    已列出目前位於 IBM WebSphere Portlet Factory Designer 中的種類名稱。 如果您新增含有新種類的建置器,則其種類也會在這裡列出。

  • 建置器

    此窗格根據您在種類名稱中的選擇或在搜尋框中輸入的關鍵字,按字母順序列出建置器名稱。 選取名稱並按一下確定,即可將建置器新增至模型。

  • 說明匣

    依預設,此窗格會顯示所選定建置器的相關資訊,以便您可以判斷是否要新增該建置器。 該窗格提供關於該建置器進一步資訊的鏈結。

    如果您已選取依預設不顯示說明匣,請按 F1 或按一下問號圖示,即可再次顯示它。

建置器挑選器可讓您新增位於 (或新增至) WebSphere Portlet Factory 安裝內的任何建置器。

如果您選取建置器,並按一下確定,則該建置器挑選器會關閉,並執行該建置器的建置器呼叫編輯器。

關於更新建置器清單

您可以更新 IBM WebSphere Portlet Factory Designer 可用的建置器清單。

可以更新建置器挑選器中的建置器清單,以併入其他建置器。 新增至 WEB-INF/builders 目錄的建置器定義所定義的建置器,會列在「所有」種類及建置器定義中所定義的其他任何種類中。 下列是導致建置器清單中不顯示建置器名稱的原因。

  • 建置器與特性集相關聯,而特性集卻不是專案的一部分。

    您可以修改專案並新增特性集。 然後,建置器挑選器中就會列出建置器。

  • 您已將新版本或修補程式新增至 WebSphere Portlet Factory Designer。

    需要升級專案版本,以更新建置器清單。

更新建置器清單

您可以更新建置器清單。

  1. 在「專案瀏覽器」中,用滑鼠右鍵按一下專案,並按一下升級專案版本
  2. 如果您已將建置器定義新增至 WEB-INF/builders 目錄,則可能需要重新啟動 IBM WebSphere Portlet Factory Designer,以在建置器挑選器中查看新的建置器。
顯示建置器說明

您不需要開啟建置器呼叫編輯器,就可以開啟建置器的主要說明主題。

這可以協助您判斷它是否是要新增至模型的正確建置器。 請執行下列其中一項:
  • 在建置器挑選器中的建置器下,將游標移至建置器名稱上方。

    即會顯示浮動說明來指出建置器的用途。

  • 在建置器挑選器中的建置器下,按一下要顯示說明之建置器的名稱。

    依預設,會在對話框中顯示說明匣。

    在對話框右側的說明匣中會顯示文字,彙總建置器的用途,並包含主要建置器說明主題的鏈結。

  • 如果您已選擇依預設不顯示說明匣,請在建置器挑選器中,執行下列其中一個動作。
    • 按一下左下角的問號圖示。
    • 建置器下,按一下想要顯示其說明的建置器名稱,並按 F1

    說明匣會顯示摘要文字及鏈結。

  • 按一下說明 > 說明內容 > IBM WebSphere Portlet Factory Designer > 參照 > 建置器說明,並從清單中選取建置器名稱。

    而主要建置器說明主題會以「明細」窗格開啟。

關於管理我的最愛對話框

在「建置器挑選器」對話框中,按一下管理我的最愛,以維護您常用的建置器清單。

此清單儲存在建置器挑選器中種類名稱下的我的最愛資料夾中。

新增
按一下以將選取的項目從建置器移至我的最愛建置器下會列出全部資料夾中出現的相同名稱。
移除
按一下以將所選項目從我的最愛刪除。
關閉
按一下以跳出視窗。

按一下問號圖示,以在說明匣中顯示對話框的相關環境定義資訊。

建置器呼叫蹦現功能表

如果您在「大綱」視圖中按一下滑鼠右鍵,即會開啟蹦現功能表,可讓您管理建置器呼叫清單,並在建置器呼叫上執行其他作業。

此功能表中的部分選項只有在選取建置器呼叫時才可以使用。 此功能表可用來存取下列指令及動作。

開啟
開啟建置器呼叫,並顯示建置器呼叫編輯器頁面。
剪下
從清單中移除建置器呼叫,並將它儲存至剪貼簿
複製
將建置器呼叫的副本儲存至剪貼簿。
貼上
將建置器呼叫的副本寫入至另一個位置。
復原
移除在功能表中執行的最後一個動作的效果。
重做
重複在功能表中執行的最後一個動作的效果。
重新命名
變更所選建置器呼叫的名稱。 這會為您提供資源清單,此清單受名稱變更及變更這些資源之選項的影響。
插入
按一下套用確定以配置及儲存建置器呼叫編輯器之後,會將建置器呼叫置於清單中。
插入註解
將「註解」建置器新增至模型。 這是記載模型不同部分的好方法。 如果清單是以註解分組,則會以這個新增的註解,將此註解及下一個註解下的任何項目進行分組。
全選
選取清單中的所有建置器呼叫 (通常用於複製或貼上)。
刪除
從「大綱」視圖的清單中移除建置器呼叫。
啟用
啟動停用的建置器呼叫。
停用
停用建置器呼叫。 建置器呼叫仍然會保留在「大綱」視圖的清單中,但是其代表的建置器在重新產生期間不會對模型執行作業。
變更建置器種類
顯示對話框,您可以在該對話框中,從模型使用的現有種類中選擇,或輸入新的種類。 此種類會影響選定的所有建置器呼叫。
重新整理
顯示建置器呼叫清單的現行狀態。
在「應用程式樹狀結構」中顯示元素
對於選定建置器呼叫,在「應用程式樹狀結構」中強調顯示關聯元素的位置,以便您可以輕鬆地尋找它們。
轉換
將建置器呼叫從某一種建置器類型變更為另一種建置器類型。 可以出現多個選項。
builder-name
建置器名稱會在以下情況下顯示為個別選項:如果系統已可以轉換為該建置器類型,或建置器已分類為可能轉換的目標。

此功能表選項適用於將建置器轉換為具有幾乎相等輸入的相似建置器類型。 例如,將「按鈕」建置器轉換為「鏈結」建置器,或將「頁面」建置器轉換為「匯入的頁面」建置器。

轉換為
開啟「建置器挑選器」視窗,您可以在其中選取建置器。

一般而言,建置器轉換應該轉換相同種類中的建置器。 例如,將「頁面」種類或「頁面元素」種類中的建置器,從某種類型轉換為另一種類型。 請勿嘗試轉換本質上或設計上完全不同的建置器。

原始建置器的輸入會保留下來,並會在適當的時候,很明智地套用至新的建置器。 例如,按鈕標籤輸入值會套用至鏈結文字輸入。 原始建置器的所有輸入都會新增至新的建置器呼叫編輯器中。

關於模型編輯器

IBM WebSphere Portlet Factory 會使用 WebSphere Portlet Factory 視景之編輯區中的數個畫面,來建立及開發 Web 應用程式的模型。

使用「專案瀏覽器」或「模型導覽器」視圖,可以在模型編輯器中存取及開啟模型。 位於 WebSphere Portlet Factory 視景「編輯區」頂端且包含模型圖示 (模型影像) 的標籤,可用來存取已開啟以供編輯的專案模型。 具有焦點的標籤會顯示 X,並會移入所有視圖的內容。

如果標籤顯示星號 (*),則表示模型中具有未儲存的變更。

畫面

您可以使用模型編輯器中的畫面,以瞭解建置器呼叫對模型的影響,變更建置器呼叫或檢查模型中元素之間的關係。 畫面包括:

應用程式樹狀結構
此畫面在 WebApp 資料夾下顯示建置器呼叫已建立及新增至模型的所有元素。 這包括資料服務、「事件」、鏈結的 Java 物件、方法、頁面、變數、綱目等。 透過導覽至物件並進行選取,就可以檢查物件及其內容。

WebApp 樹狀結構會在每次重新產生模型時更新。

頁面
此畫面提供模型中頁面及表單的替代表示法。 使用大圖示格式,以便輕鬆找到特定頁面或表單。
來源
此畫面會顯示與模型中物件相關的原始程式碼,並提供原始程式碼本身的有用相關資訊。
設計
此畫面會顯示「應用程式樹狀結構」或「頁面」畫面中所選取可見元素的視覺化呈現。 此畫面可讓您快速且便捷地查看模型中可見的元素,而無需執行該模型。 使用此畫面,您還可以變更頁面自動化欄位及顯示外觀。
選用區 (Palette)
選用區圖示位於「設計」畫面的右上角。 按一下該圖示,可以顯示與隱藏設計工具和指令的選用區,以將建置器新增至模型。 標題列中的蹦現功能表可讓您調整選用區定置位置大小及移動該選用區的位置。 使用拖放,您還可以變更模型中的佈置。 這些變更會將「顯示管理程式」建置器新增至您的模型。
模型 XML
此畫面會顯示模型的基礎 XML 程式碼。 此畫面對建立建置器的開發人員特別有用。
建置器呼叫編輯器
此畫面會顯示用於配置或變更模型中建置器呼叫的編輯器。

關於應用程式樹狀結構

「應用程式樹狀結構」會列出編輯區中所選之已開啟模型中產生的元素。

您可以在模型編輯器中使用「應用程式樹狀結構」,以導覽至及存取產生的元素。 在模型編輯器中的已開啟模型具有焦點時,按一下應用程式樹狀結構標籤,以展現畫面並檢視在其中依類型列出產生之元素的 WebApp 資料夾及子資料夾。 如果應用程式樹狀結構標籤不可見,請按一下編輯區左側的箭頭圖示,以收縮所選畫面並展現「應用程式樹狀結構」畫面。

模型之產生的元素會以樹狀結構形式顯示在 WebApp 資料夾下。 代表元素類型的資料夾都可以展開及收合。 例如,WebApp 中的所有變數都包含在「變數」資料夾中。 其他類型的元素也可如此。 此產生的元素組織可讓您一眼就看出 WebApp 包含的內容,以及 WebApp 在重新產生期間所發生的變更。 例如,您可以使用「應用程式樹狀結構」來確定建置器新增至 WebApp 的內容。

按一下伴隨的頁面標籤,可更輕鬆地存取頁面及表單元素。

對於「應用程式樹狀結構」中所選之已產生元素的每個類型,對應的程式碼會顯示在「來源」畫面中。

使用「來源」畫面,可以檢查建置器呼叫或方法產生的相關程式碼。

如果您展開「應用程式樹狀結構」中的資料夾,並按一下某個 WebApp 物件,在建置器呼叫清單中就會強調顯示負責建立該物件的建置器。 同樣地,如果您選取「大綱」視圖中的建置器呼叫並啟用鏈結 WebApp 樹狀結構,則會在「應用程式樹狀結構」中選取與該建置器呼叫相關聯之已產生的元素。

「應用程式樹狀結構」作業與「來源」視圖及「設計」視圖緊密聯結。

應用程式樹狀結構中的控制項

標準 Eclipse 樹狀結構過濾器位於「應用程式樹狀結構」的頂端。 如果您在過濾器中鍵入文字,則可以執行漸進式搜尋。 僅名稱的開頭有過濾器字元的這些資源會在 WebApp 資料夾下,相關的子資料夾中顯示。 如果先鍵入星號字元 (*),後跟文字,則會顯示這些名稱的任何位置均有該文字的資源。 有一個圖示可以清除過濾器,並顯示所有資源。

「應用程式樹狀結構」支援蹦現功能表,可讓您更輕鬆地開啟建立的建置器或修改所選元素的建置器。

註: 如果您在 IBM WebSphere Portlet Factory Designer 喜好設定中設定顯示隱藏物件,則會在 WebApp 資料夾下看到其他物件。
應用程式樹狀結構中的一般資料夾

通常,您可以在「應用程式樹狀結構」中看到下列資料夾。

註解
顯示「註解」建置器呼叫。 這些呼叫是用來記錄模型建構或建置器呼叫清單中的建置器區段。 它們提供記錄模型的便捷方式。
資料服務
顯示用來存取「IBM WebSphere Portlet Factory 資料服務層」之已產生元素的相關資訊。 此通用層用於存取後端或外部資料,以便能區隔使用者介面 (UI) 與資料。 例如,此層可讓您擁有一個用來存取資料的模型,以及一個提供存取資料的商業邏輯或使用者介面的鏈結的模型。 可以顯示為「資料服務」的物件包括:「服務呼叫」、「SQL 呼叫」,以及由各種「視圖及表單」建置器發出的資料存取要求。
事件
會顯示事件處理常式資訊 (不會顯示「事件宣告」本身)。 在模型中新增「錯誤處理常式」建置器呼叫時,其資訊會顯示在「來源」畫面中。 WebApp 中的每個事件都會列出在「事件」樹狀結構中。 使用者定義的事件 (使用「事件宣告」建置器建立) 會附加 User 字首,且只在處理事件的「事件處理常式」建置器存在時,才會顯示。 「事件宣告」會新增兩個方法至 WebApp。 這些方法會顯示在「方法」資料夾下。 下列是一般事件檢視器顯示畫面:
Event: OnError.main
Action: showErrorPage
鏈結的 Java 物件
會顯示模型中每個 LJO 的相關資訊,包括狀態 (由於失效接手而持續) 及 LJO 內的公用 (public) 方法。
方法
會強調顯示選取的方法之 Java 程式碼。 檢視器會顯示已產生方法的整個類別,並強調顯示選取的方法。
頁面
顯示 WebApp 中每個頁面的相關資訊。 上端畫面會說明頁面名稱狀態 (公用) 及內容。 下端畫面會顯示頁面 HTML、JSP 程式碼及標籤。 按一下個別頁面中列出的節點 (頁面控制項) 時,可以跳躍至實作該節點的程式碼。

使用「頁面」畫面,以更直接的方式存取模型中的頁面及表單。

內容
會顯示套用於整體 WebApp 的內容相關資訊。 各種建置器(例如「綱目」建置器)會建立及使用 WebApp 內容。
綱目
會顯示定義綱目的 XSD 及 XML 標記,以及元素與屬性 (不是實際的綱目資料) 的一般結構。 上端畫面會顯示綱目來源及快取資訊。 下端畫面會顯示綱目 XSD 元素及參照。
變數
會顯示 WebApp 中每個變數的相關資訊,不論變數是手動建立還是由建置器自動建立。 上方畫面會呈現變數名稱、狀態、類型、持續性及內容的相關資訊。 若為物件類型,還會列出類別名稱及實例化方法。

預覽並與設計互動

您可以顯示模型的視覺化呈現。

如果您按一下設計視圖,並已在「應用程式樹狀結構」中選取不可視項目,或者在模型中無任何可見元素,則會看到此文字。

您需要將建立頁面元素的模型建置器新增至模型。

  1. 確保您已透過執行下列其中一個動作,在模型中新增建立頁面元素的建置器:
    • 在「應用程式樹狀結構」中,檢查位於頁面資料夾的元素。
    • 在建置器呼叫清單中,尋找合格的建置器 (即建立頁面或表單的建置器)。
  2. 如果您發現模型中不含頁面元素,請新增建置器以建立頁面或表單。
  3. 針對模型中的頁面或表單,執行下列其中一項:
    • 從「應用程式樹狀結構」,導覽至頁面資料夾並將其展開,然後選取頁面。
    • 按一下頁面標籤,並按一下頁面元素。
設計視圖中,您會看到所選可見元素的視覺化呈現。
使用設計及頁面畫面

模型編輯器中的「設計」及相關「頁面」畫面會提供模型中視覺化元素的圖形表示法。

使用「設計」畫面, 您可以變更欄位及頁面上欄位的分組。

頁面畫面

「頁面」畫面會顯示模型中所有已建立頁面及表單的縮圖圖示。 (所產生的相同元素會列出在「應用程式樹狀結構」中)。 按一下頁面標籤,以展現窗格。 圖示可讓您更輕鬆地選取模型中的可見元素。 「頁面」工具列中的「視圖」圖示還可讓您顯示可見元素的清單及詳細格式。

「頁面」畫面支援蹦現功能表,可讓您更輕鬆地開啟建立的建置器或修改所選元素的建置器。

設計畫面

「設計」畫面會顯示「應用程式樹狀結構」或「頁面」畫面中選取之可見元素的視覺化表示法。 按一下設計標籤會展現「設計」畫面。 此畫面可讓您快速且便捷地檢視模型中可見的元素,而無需產生 Web 應用程式,並且可讓您變更設計。

在窗格中,標籤視覺化呈現為頁面上的方框。 標籤顯示為橙色,以指出要新增建置器。 標籤名稱顯示在方框中。

編輯器畫面左側中的箭頭圖示可進行切換,以隱藏或展現「應用程式樹狀結構」及「頁面」畫面。 隱藏其他畫面為您提供更大螢幕空間,以使用建置器呼叫編輯器。 視覺化表示法包含紅色星號及紅色文字指示器。 這些表示相關聯的元素發生錯誤狀況,您必須在建置器呼叫編輯器中移除該錯誤狀況。 此外也包含群組圖示,可讓您在聚集元素上輕鬆運作。

「設計」畫面與「應用程式樹狀結構」緊密連接。 如果您選取「設計」畫面中的元素,則會選取「應用程式樹狀結構」中對應的元素。 同時,會強調顯示「來源」畫面中的相關聯程式碼。

「設計」畫面支援可協助您開發 Web 應用程式的蹦現功能表選項及選用區。 可用的蹦現功能表選項取決於畫面中所選元素的環境定義。 用滑鼠右鍵按一下窗格中任何元素或群組圖示都會顯示功能表。

在任何建置器 (從「設計」畫面新增至模型的建置器) 的建置器呼叫編輯器中,會根據所選元素的環境定義預先填入頁面及標籤欄位。

顯示選用區
「設計」畫面右上角的「顯示選用區」圖示會提供選用區對話框,可讓您將設計元素拖放到模型的頁面上。 按一下「顯示選用區」圖示,即可顯示該對話框,而按一下「隱藏選用區」圖示則可隱藏該對話框。 「設計」畫面中的頁面自動化元素可以利用滑鼠,透過拖放來重新排列。 您可以使用選用區中的種類,利用拖放將建置器新增至頁面位置。 選用區中的佈置工具群組可讓您修改及擴增頁面設計。 這些選項包括:
  • Dojo 摺疊式儲存器清單,可產生 AccordionContainer 清單,其中每個清單項目都包含在 Dojo ContentPane 中,可供選取以檢視項目清單詳細資料。
  • Dojo 標題窗格清單,以產生一個清單,其中每個項目都會包含在「Dojo 標題窗格」中,可供展開或收合,以檢視項目詳細資料。
  • 多行清單佈置,以產生一個清單,其中每個清單項目都包含三個直欄資料及三個列。
  • 縮圖多行清單,以產生一個清單,其中每個清單項目都包含三個直欄資料及三個列,第一個直欄用於縮圖影像。
  • 縮圖單行清單,以產生一個清單,其中每個清單項目都在單一列中包含三個直欄資料,第一個直欄用於縮圖影像。
  • 無序/有序清單,以產生一個具有單一目標的簡式有序或無序清單。
對於「頁面自動化」區域:
  • 插入網格,以將網格新增至頁面。
  • I 佈置,以將 "I" 佈置新增至頁面。
  • 顛倒的 T 佈置,以將顛倒的 "T" 佈置新增至頁面。
  • 佈置直欄,以將佈置直欄新增至頁面。
  • 佈置列,以將佈置列新增至頁面。
  • T 佈置,以將 "T" 佈置新增至頁面。
  • 兩個直欄佈置,以將兩個直欄新增至頁面。
註: 在頁面上透過拖放來新增及變更物件,會使「顯示管理程式」建置器新增至該頁面的模型中。
合併欄位
如果在「設計」畫面或「樹狀結構應用程式」中選取多個欄位,則可以使用蹦現功能表中的 合併欄位 指令。 此指令可讓您結合欄位來顯示。

您通常需要資料位於多個欄位中。 不過,顯示資料時,您可能要將這些欄位合併為一個直欄進行顯示。 例如,人員的地址可能包括個別城市、州和郵遞區號欄位。 您可以使用「資料欄位合併」建置器,來將各個欄位作為詳細資料頁面上的單一欄位或單一顯示的直欄。

在「設計」畫面中,您可以選取要合併的多個欄位,按一下滑鼠右鍵,然後按一下合併欄位,將欄位合併至現行直欄中。 多個欄位必須全部位於相同的儲存器欄位中。 填寫與功能表指令相關的資訊後,「資料欄位合併」建置器會新增至您的模型,並顯示新合併的直欄。

資料欄位設定
如果在「設計」畫面或「樹狀結構應用程式」中選取欄位或直欄,則可以使用 資料欄位設定 指令。 此指令可讓您控制模型中頁面自動化欄位的有限顯示設定(以及資料輸入欄位的驗證設定)。 對於某些變更類型,您可以限制對模型中一個頁面進行變更,或對模型中出現欄位的所有頁面進行變更。

如果在「設計」畫面中的頁面自動化欄位上按一下滑鼠右鍵,然後按一下資料欄位設定 > 欄位資料欄位設定 > 驗證。 (僅資料輸入欄位的功能表上提供驗證指令。) 變更設定時,請按一下套用確定

如果用滑鼠右鍵按一下表單或頁面中的直欄或欄位,則可以使用資料欄位設定 > 隱藏資料欄位設定 > 顯示,來快速變更其顯示設定。 指令可讓您切換內容,以讓欄位或直欄不顯示或顯示。

如果用滑鼠右鍵按一下表單或頁面中的直欄或欄位,則可以使用資料欄位設定 > 排序資料欄位設定 > 移除排序,來快速變更其排序設定。 指令可讓您切換內容,以容許欄位或直欄排序或阻止其排序。

如果模型不包含此表單或頁面的相關建置器,則會將建議的建置器新增至模型。 如果相關的建置器位於此表單或頁面的模型中,則會以您的變更來更新該建置器中的相關輸入。

使用來源畫面

模型編輯器中的「來源」畫面會顯示與「應用程式樹狀結構」、「設計」或「頁面」畫面中選取的已產生元素,或者與「大綱」視圖中選取的建置器呼叫相關聯的應用程式碼。

按一下來源標籤,以展現畫面。 使用編輯區左側的箭頭圖示,以展開及收縮畫面。 例如,如果「應用程式樹狀結構」及「頁面」標籤不可見,請按一下箭頭,以收縮「來源」畫面並展現其他畫面。

如果「來源」畫面是空的,則會看到一則訊息:未選取元素。 您可以執行下列其中一項:
  • 使用「應用程式樹狀結構」、「頁面」畫面或「設計」畫面來選取元素。

    在「應用程式樹狀結構」中,導覽至並選取產生的元素。 在「頁面」畫面中,選取頁面或表單。 在「設計」畫面中,選取可見元素。 會強調顯示「來源」畫面中的相關程式碼。

  • 使用「大綱」視圖中的建置器呼叫清單來選取建置器呼叫。

    如果啟用「大綱」視圖中的鏈結 WebApp 樹狀結構,則選取建置器呼叫會選取「應用程式樹狀結構」中的相關聯元素,且會強調顯示「來源」畫面中的相關原始程式碼。

在「來源」畫面中,您會看到程式碼相關資訊及程式碼本身。 若要收合及展開元素的相關資訊,請使用元素名稱左側的三角形圖示。 收合資訊會為程式碼顯示畫面提供更大空間。

程式碼的相關資訊依相關元素的類型而異。 例如,若為方法,您可在關聯下看到下列項目:
  • 呼叫者

    呼叫現行選項的方法

  • 呼叫

    所選程式碼呼叫的方法

使用程式碼的相關資訊,以更輕鬆地瞭解模型的作業方式。

使用來源視圖及應用程式樹狀結構

「來源視圖」及「設計視圖」標籤可以顯示您在「應用程式樹狀結構」中選取的元素明細。

如果您選取來源視圖標籤,則在「應用程式樹狀結構」視圖中選取的物件不含任何可用來源,請參閱本主題。 您可讓模型中建置器建立的元素原始程式碼顯示在「來源視圖」中。

針對涉及新增建置器與指定建置器呼叫輸入的模型,顯示來源資訊。
  1. 確保您已將建置器新增至模型。

    在「大綱視圖」中,您會看到建置器呼叫清單,該清單中的每一個項目都會說明您已新增至模型的建置器。

    如果建置器呼叫清單為空,請使用建置器挑選器來將建置器新增至模型。

  2. 如果您將建置器新增至模型,請在建置器呼叫編輯器中,指定必要項目及預設輸入,然後按一下套用

    在「大綱視圖」中可看到已新增至建置器呼叫清單的建置器。

  3. 按一下應用程式樹狀結構,導覽至 Webapp 資料夾中的任意元素並進行選取。

    「來源視圖」中會顯示來源資訊。

控制儲存器模型中的預設頁面視圖

您可以控制依預設顯示的設計視圖頁面。 一般而言,依預設顯示的頁面是使用者在所包含模型中檢視的第一頁,可能並不是模型執行時實際顯示的頁面。 完成此作業,以控制使用者在所包含模型的設計視圖中所看到的頁面。
  1. 導覽至儲存器模型中您希望依預設顯示的頁面。
  2. 按一下模型 > 模型儲存器的快取頁面
現在,當模型執行時,依預設會顯示所選頁面。

模型編輯器蹦現功能表

模型編輯器 (亦即,在「應用程式樹狀結構」、「頁面」畫面及「設計」畫面中) 中的蹦現功能表,會在現行環境定義中顯示建立所選物件的建置器,以及可修改所選之已產生元素的可用建置器。

功能表上的選項可讓您更輕鬆地啟動適當的建置器。 如果用滑鼠右鍵按一下「應用程式樹狀結構」中的資料夾或產生的元素、在「頁面」畫面中產生的元素或「設計」畫面中的視覺化元素,則會看到具有下列類型選項的蹦現功能表。
建立
可讓您為與所選資料夾相關聯的元素類型新增建置器呼叫。 例如,如果所選資料夾為事件,則您會看到建立 > 事件宣告
切換岔斷點
啟用及停用所選之已產生元素上的岔斷點。 如果您在「應用程式樹狀結構」中於資料夾上按一下滑鼠右鍵,則不會顯示。
開啟 "name(builder-name)"
如果您在 WebApp 資料夾上按一下滑鼠右鍵,可讓您開啟模型中指示的建置器呼叫。 通常,這是負責建立 WebApp 資料夾的建置器呼叫。
建置器呼叫作業
「大綱」視圖中的建置器呼叫蹦現功能表中也提供了這些指令。
開啟
開啟建置器呼叫,並顯示建置器呼叫編輯器頁面。
停用
停用建置器呼叫。 建置器呼叫仍然會保留在「大綱」視圖的清單中,但是其代表的建置器在重新產生期間不會對模型執行作業。
刪除
從「大綱」視圖的清單中移除建置器呼叫。
在「應用程式樹狀結構」中顯示元素
對於選定建置器呼叫,在「應用程式樹狀結構」中強調顯示關聯元素的位置,以便您可以輕鬆地尋找它們。
轉換
將建置器呼叫從某一種建置器類型變更為另一種建置器類型。 可以出現多個選項。
builder-name
建置器名稱會在以下情況下顯示為個別選項:如果系統已可以轉換為該建置器類型,或建置器已分類為可能轉換的目標。

此功能表選項適用於將建置器轉換為具有幾乎相等輸入的相似建置器類型。 例如,將「按鈕」建置器轉換為「鏈結」建置器,或將「頁面」建置器轉換為「匯入的頁面」建置器。

轉換為
開啟「建置器挑選器」視窗,您可以在其中選取建置器。

一般而言,建置器轉換應該轉換相同種類中的建置器。 例如,將「頁面」種類或「頁面元素」種類中的建置器,從某種類型轉換為另一種類型。 請勿嘗試轉換本質上或設計上完全不同的建置器。

原始建置器的輸入會保留下來,並會在適當的時候,很明智地套用至新的建置器。 例如,按鈕標籤輸入值會套用至鏈結文字輸入。 原始建置器的所有輸入都會新增至新的建置器呼叫編輯器中。

開啟 "element-name(builder-creator)"
針對建立所選元素的建置器類型執行建置器呼叫編輯器。
開啟 "element-name(builder-modifier)"
針對可以修改所選元素的建置器執行建置器呼叫編輯器。 此類型選項可以有多個指令。
匯出 HTML 以進行資料佈置
為所選產生的元素,建立包含 HTML 程式碼的檔案。
匯出資源軟體組
會產生 .properties 檔案,以協助您本地化使用者可見的文字,以便以多語言顯示。 如果在「應用程式樹狀結構」或「頁面」畫面中的頁面上按一下滑鼠右鍵,則可以使用此指令。
category-name
提供一個種類的建置器清單,該種類內所有的建置器都宣告可以修改所產生元素或所選資料夾的類型。 可以有多個種類。

在種類的子功能表中,按一下建置器名稱,即可執行建置器呼叫編輯器,在模型中建立修改元素的新建置器呼叫。

建置器的種類及清單並不是完全詳盡的。 因此,某個建置器可能可以建立特定的元素,但是因為其在該環境定義中沒有意義,所以該建置器並不會顯示在清單中。

下列指令的用法特殊。
資料欄位設定
可以使用下列指令。
欄位驗證

如果在「設計」畫面中的頁面自動化欄位上按一下滑鼠右鍵,然後按一下資料欄位設定 > 欄位資料欄位設定 > 驗證。 (僅資料輸入欄位的功能表上提供驗證指令。) 變更設定時,請按一下套用確定

隱藏顯示
如果用滑鼠右鍵按一下表單或頁面中的直欄或欄位,則可以使用資料欄位設定 > 隱藏資料欄位設定 > 顯示,來快速變更其顯示設定。 指令可讓您切換內容,以讓欄位或直欄不顯示或顯示。
排序移除排序
如果用滑鼠右鍵按一下表單或頁面中的直欄或欄位,則可以使用資料欄位設定 > 排序資料欄位設定 > 移除排序,來快速變更其排序設定。 指令可讓您切換內容,以容許欄位或直欄排序或阻止其排序。

如果模型不包含此表單或頁面的相關建置器,則會將建議的建置器新增至模型。 如果相關的建置器位於此表單或頁面的模型中,則會以您的變更來更新該建置器中的相關輸入。

您可以使用 Ctrl 鍵並按一下,來為該指令選取類型(欄位或直欄)相同的多個物件。

合併欄位

在「設計」畫面中,您可以選取要合併的多個欄位,按一下滑鼠右鍵,然後按一下合併欄位,將欄位合併至現行直欄中。 多個欄位必須全部位於相同的儲存器欄位中。 填寫與功能表指令相關的資訊後,「資料欄位合併」建置器會新增至您的模型,並顯示新合併的直欄。

方法
如果在「應用程式樹狀結構」中的方法上按一下滑鼠右鍵,則此指令將提供下列選項。
置換
將「方法」建置器新增至您的模型,並使用所選方法的程式碼填入方法主體輸入。 如果需要將特殊處理新增至類似於 main 的方法,此指令會非常有用。 新增變更,並在建置器中按一下確定。 變更的方法會取代重新命名的所選方法。 變更的方法會置換選定方法。
方法
將空白「方法」建置器新增至建置器呼叫清單。
新增建置器呼叫
顯示「建置器挑選器」對話框,以便您可以選取要新增至模型的建置器呼叫。

模型 XML 畫面

模型編輯器中的「模型 XML」畫面會顯示模型的 XML (當它儲存在磁碟上時)。

如果您正在建立建置器,則可以使用「模型 XML」畫面來檢查間接參照的解析方式。 同時,您可以檢查各種建置器 (如「資料頁」建置器及「資料庫」建置器) 產生的綱目。

關於使用建置器呼叫編輯器

建置器呼叫編輯器可讓您指定建置器呼叫的所有輸入值。

您也可以參照 XML 結構中的元素,並在模型的一個以上的頁面上尋找控制項建置器呼叫。

下面是許多建置器常用的建置器呼叫輸入群組:

內容
展開「內容」輸入群組會顯示說明建置器呼叫相關資訊的下列輸入:
啟用建置器
啟用建置器TrueFalse,標示是否要在產生中併入建置器呼叫。 預設值是 True。 您可以對此輸入建立設定檔,以啟用或停用特定設定檔的建置器呼叫。
種類
此輸入已不再使用。
註解
輸入註解,說明如何使用此建置器呼叫的相關資訊。 開啟建置器呼叫時,這些註解會顯示在建置器呼叫編輯器的內容區段中。
將 Eclipse 作業新增至模型
您可以使用註解欄位,將 Eclipse 作業新增至模型。 透過將註解新增至任何建置器來建立作業。使用這些作業,來指示還有 TODO 或 FIXME 項目要完成。 TODO 項目是正常優先順序作業,而 FIXME 項目是高優先順序作業。 每個建置器可以具有多個作業。當您完成作業時,您可以移除註解,這會從模型移除作業。
在行的開頭,以大寫字母指出具有 TODO 或 FIXME 的每個作業。 例如:
TODO  更新此頁面的樣式
FIXME  新增智慧型手機支援

當透過 API 呼叫建置器時,建置器還可以新增作業。當建置器呼叫目標建置器時,呼叫建置器會將具有嚴重性指示器作業的訊息新增至呼叫。指示的訊息會新增至目標建置器。

訊息可以包含建置器想要的任何文字;但是如果建置器想要標準 TODO 及 FIXME 行為,則該訊息需要以 TODO 或 FIXME 開始。這些作業會一直顯示,直到建置器不再產生這些訊息為止。這可讓建置器動態新增作業,以協助使用者使用進階功能。

引數
展開「引數」群組會顯示下列輸入,可讓您將引數傳遞給所指定的動作:
名稱
輸入所指定動作的引數名稱。
輸入引數的值。 您可以使用參照選擇器,從 Web 應用程式的其中一個元素中選取值。
進階
展開進階群組會顯示其他輸入,您可以依據需求來設定這些輸入,以微調建置器的行為。
HTML 屬性
展開 HTML 屬性群組會顯示下列輸入,說明應如何在 HTML 中呈現控制項建置器呼叫 (如「按鈕」或「文字輸入」)。
類別
如果此控制項所在的頁面使用階式樣式表 (CSS),請輸入要套用至此控制項的樣式類別名稱。
樣式
輸入建置器新增至頁面的控制項所適用的 HTML 樣式語法。

也可能會出現其他選項,需視建置器而定。

關於指定輸入值

建置器呼叫的大部分輸入都可以採用從間接參照、Java 表示式或直接從 String 值衍生的值。 部分需要特定物件 (如變數或模型) 的名稱輸入,會使用特定的選擇器來過濾不適合的元素。

關於建置器呼叫命名

一般而言,是使用與 Java 變數相同的慣例來命名模型中的建置器。

(開頭為小寫字元,接下來每個單字的第一個字母為大寫。) 例如:

  • orders
  • ordersList
  • OrdersListNorthEast
  • entryPage
  • result
  • registerUser

有時不應遵循第一個字母小寫的規則。 例如,Portlet 配接器建置器的名稱輸入是作為入口網站中的 Portlet 名稱使用 (不是用於產生的 Web 應用程式物件),因此,在此建置器呼叫名稱開頭使用大寫字母比較合理。

一般而言,控制項建置器的名稱輸入 (例如「按鈕」或「鏈結」建置器) 最好保留空白。 此輸入保留空白時,控制項建置器會自動顯示它所在的標籤名稱。

重複名稱錯誤
如果您建立與現有變數或 LJO 同名的 LJO, WebSphere Portlet Factory 會擲出異常狀況 (重複名稱錯誤)。 重複名稱會造成不易診斷及修正的執行時期問題。 這個錯誤會避免執行時期衝突,該衝突可能會在應用程式執行時導致模糊的錯誤。 您可以在設計時或執行時期時看到這個錯誤。 此錯誤會在下列其中一個案例中發生。
  • 如果您直接使用「鏈結的 Java 物件」建置器不正確地命名 LJO。
  • 如果您間接透過建置器呼叫的名稱不正確地命名 LJO (該建置器呼叫本身會使用該建置器的名稱來建立 LJO)。
若要避免此錯誤,請變更建立重複名稱而導致錯誤的其中一個建置器呼叫名稱。

關於使用選擇參照對話框

選擇參照對話框可讓您指定模型實體的值,作為建置器輸入的值。

選擇參照對話框會以樹狀結構形式顯示模型元素,可讓您瀏覽至要將其值提供給建置器輸入的模型元素。 選擇參照對話框產生的語法會顯示在建置器輸入的文字框中,稱為間接參照。 您也可以使用間接參照語法,來指定 Java 表示式傳回的值作為建置器輸入值。

選擇參照對話框會顯示所有變數、方法、輸入及頁面,您可以從中選擇將已選取元素的輸出值,對映至建置器呼叫的輸入值。 對於與綱目相關聯的 XML 結構參照,選擇參照對話框會顯示所有元素,以及與那些元素相關聯的所有屬性。 在對話框樹狀結構中,在名稱之前會使用 @ 符號來區分屬性。

選擇參照對話框會過濾出無效的可能性。 例如,您可以將「按鈕」建置器的標籤輸入值設為方法的輸出、變數的值,或先前提交頁面上的輸入值。 當您顯示標籤輸入的選擇參照對話框時,它不會顯示模型中的頁面,因為它們不是衍生按鈕標籤的有效方法。

建立方法參照

選擇參照對話框只會顯示不使用引數的方法。 當嘗試向輸入提供由方法傳回的值時,請記住有些建置器不支援將引數指定到在選擇參照對話框中選取的方法。 如果您想要向建置器呼叫輸入提供從使用引數的方法傳回的值,請將方法呼叫建置器呼叫新增至模型,在該模型中呼叫方法,以及提供支援引數。 使用選擇參照對話框來設定輸入值,並選取剛剛建立的方法呼叫。

指定建置器輸入的值

您可以使用數種方式,來指定建置器輸入的值。

例如,您可以使用輸入選取方塊或文字輸入控制項。 使用這些控制項指定值是直接明確的。 IBM WebSphere Portlet Factory Designer 也使用數種類型的選擇器控制項來指定輸入值,以供您選取資源。

下列對話框會以樹狀結構顯示可選取的元素,您可以從其中進行選擇。 例如,選擇檔案對話框會顯示檔案清單及/或包含檔案的目錄。 使用這些對話框以導覽至適當的資源。

選取動作
讓您選取方法或頁面作為針對輸入執行的動作。 動作清單建置器中的選取動作對話框還容許您選取特殊動作。
資料頁欄位選擇器
讓您選取要將其欄位格式化的表單元素,例如日期/時間格式製作程式建置器提供的欄位。
選擇檔案
讓您選取檔案,例如,在「匯入的頁面」建置器呼叫中選取要匯入的頁面。 對話框視窗中提供了下列選項。
新增檔案至專案
您可以將檔案系統任何位置的檔案新增至專案,並在專案中選取目的地。
複製檔案及參照檔案
讓您複製及參照視窗中列出的檔案。 對話框可讓您選取複製檔案的目的地,然後在視窗中更新此檔案的參照。 此特性可以更輕鬆地修改專案提供的檔案,並在軟體更新時保持這些變更。
選擇模型
讓您選取模型,例如,在「匯入的模型」建置器呼叫中選取要匯入的模型。
選擇參照
讓您選取各種輸入值。 此頁面其餘部分的區段會提供如何使用此對話框的指示。
設定檔輸入
讓您選取設定檔。
選擇「變數」或「綱目」
讓您選取綱目。
選取類別
讓您選取完整的 Java 類別名稱。 此選擇器會顯示非 IBM WebSphere Portlet Factory 建立之 /WEB-INF/lib 中的 Jar 類別,以及 bowstreet.dynamic.class.load.path 內容中指定之目錄內含的 Jar 及目錄的類別。
選擇變數類型
讓您選取變數類型 (String、XML、Object、Boolean、Double、Float、Integer、Short 或 Long) 作為「變數」建置器的值。
組合間接參照類型

您可以使用間接參照類型的組合。

例如,您可以將 Java 表示式與變數參照結合,以衍生影像的 URL:

${Java/webAppAccess.getRequestData().getContextURL()}/${Variables/ImageFileName}

ImageFileName 變數包含影像的檔名。

使用 Java 表示式進行建置器輸入

您還可以輸入 Java 語法作為建置器的輸入。

在產生時,IBM WebSphere Portlet Factory 執行時期會評估 Java 表示式,並將值提供給建置器呼叫的輸入。 如果您想要在 Web 應用程式中指定元素,但選擇器或建置器呼叫編輯器並不直接支援該元素,則可以使用 Java 表示式進行間接參照。 比如說,如果想要為輸入提供 WebSphere Portlet Factory 執行時期的 URL,則可以使用下列 Java 表示式:
${Java/webAppAccess.getRequestData().getContextURL()}

若要將文字輸入值設為接受引數之方法傳回的值,請使用:

${Java/webAppAccess.callMethod("MethodName", arg1, arg2)}
預先定義的 Java 表示式

選擇參照對話框的 Java 節點也提供一些預先定義的表示式供您使用。

若要插入表示式,您只需從選擇器中選取其中一個。 下列為可用的表示式:
  • HttpServletRequest calls webAppAccess.getHttpServletRequest()
  • HttpServletResponse calls webAppAccess.getHttpServletResponse()
  • HTMLRoot calls com.bowstreet.BSConfig.getHtmlRootDir()
  • Request calls webAppAccess.getRequestData()
  • ServerURL calls webAppAccess.getRequestData().getServerURL()
  • ServletURL calls webAppAccess.getRequestData().getServletURL()
  • StaticContentURL calls webAppAccess.getURLMapper().getStaticContentURL("","http")
  • WEB-INF calls com.bowstreet.BSConfig.getHomedir()

選擇參照對話框選取表示式之後,該表示式就會置於建置器輸入欄位中。 此時,如果您需要新增引數或進行修改,則可以編輯表示式。

巢狀處理及連結間接參照

您可以視需要連結間接參照,或將它們進行巢狀處理。

例如,如果要用作建置器呼叫輸入值的 XML 元素索引是由其他變數決定的,則巢狀間接參照會類似如下:
${Variables/MyXML/XmlElement[
${Variables/IndexValue}]}

若要建立巢狀間接參照,請執行下列步驟:

  1. 使用選擇參照對話框,在輸入方塊中移入開始的間接參照。
  2. 將游標放置在要插入其他間接參照的位置。
  3. 按一下 瀏覽圖示,以顯示選擇參照對話框。
  4. 選取屬意的模型元素。
選擇參照對話框會在游標位置插入新的間接參照。

參照選擇器

參照選擇器可讓您將模型中的元素值指派給建置器呼叫輸入。

參照選擇器會顯示所有可以衍生值的變數、方法、輸入及頁面。 當您在參照選擇器中選取項目時,其傳回的值稱為「間接參照」,該值會定義到模型中所選取元素的路徑。 例如,${Variables/CustomerName}${MethodCall/GetCustomerName}

您可以將間接參照相互合併及內嵌,以產生值的高彈性參照。 例如,下列間接參照會使用方法傳回的值作為元素的索引,以傳回 XML 結構中特定元素的值:
${Variables/Customers/Customer[${MethodCall/GetIndexValue}]}

參照選擇器會顯示可能的模型元素 (例如,變數、方法、輸入及頁面),您可以從中選擇將所選取元素的輸出值對映至建置器呼叫的輸入值。 依預設,參照選擇器會因故隱藏可能沒用的許多元素。 按一下對話框中的顯示其他,以顯示一開始便依預設隱藏的元素。

參照選擇器會過濾出可能無效的項目。 例如,您可以將「按鈕」建置器的標籤輸入值設為方法的輸出、變數的值,或先前提交頁面上的輸入值。 顯示標籤輸入的參照選擇器時,並不會顯示模型中的頁面,因為這些頁面並不是衍生按鈕標籤的有效方法。

下列是使用參照選擇器的各方面:

  • 佈景主題內容資料之間接參照的規格
  • 指定頁面控制項
  • 方法參照
  • 間接參照巢狀及連結
  • Java 表示式使用
  • 組合間接參照類型
  • 清單規格
間接參照佈景主題內容資料

您可以在參照選擇器中直接輸入間接參照,以提供對佈景主題內容資料的存取。

請使用下列語法。
${Properties/bowstreet.Theme/property-name}
此參照用於定義使用者介面 (UI) 元素的建置器輸入中。 例如,在「分頁按鈕」建置器中,您可以指定一般按鈕影像輸入。 您可以使用定義檔案之佈景主題內容的間接參照,來取代指定檔案路徑。 如此一來,便可將參照的定義集中到使用者介面元素,而且如果需要變更元素,也不需要在多個建置器中修改多個輸入。
藉由將類似下列範例的定義併入 WebApp 佈景主題內容檔,便可建立集中化的參照。
<PagingButtons_NormalImage>/myfiles/images/normal.jpg
  </PagingButtons_NormalImage>
此定義指定您的影像檔在 WebContent 資料夾中的路徑。 請確保該內容在佈景主題檔中是唯一的。
在建置器輸入中輸入間接參照,以利用此定義。 例如,在「分頁按鈕」建置器的一般按鈕影像輸入中,輸入下列參照。
${Properties/bowstreet.Theme/PagingButtons_NormalImage}
產生模型時,在建構 WebApp 之後,normal.jpg 影像會併入其輸入包含間接參照的所有頁面上。

這個語法僅供接受單一值的建置器輸入使用。 接受的值清單的輸入則無法使用。

指定頁面控制項

您可以使用參照選擇器,指定頁面控制項的值 (例如,文字輸入或按鈕標籤)。

請不要選擇要求輸入的間接參照。 例如,${Inputs/someValue}。 如果應用程式是在 Portlet 環境中執行,則可能需要將輸出呈現為頁面上另一個 Portlet 的要求結果。 然而,從要求輸入中取得其值的任何控制項或標籤都不會有值。

在此應用程式中的最佳作法,是使用頁面自動化建置器 (例如,具有「資料欄位修飾元」及「資料直欄修飾元」建置器的「資料頁」建置器)。 您也可以透過變數來指定頁面控制項的值。

方法參照

參照選擇器顯示可提供建置器輸入值的方法。

如果選取的方法需要引數,則會顯示一個蹦現對話框來提示您提供引數給方法。 您提供的方法引數可能是寫在程式中的引數,或引數本身是其他方法或變數的間接參照。

間接參照巢狀及連結

您可以視需要連結間接參照,或將它們進行巢狀處理。

例如,如果要當成建置器呼叫輸入值使用的 XML 元素索引是由另一個變數所決定,則巢狀間接參照會與下列類似:

${Variables/MyXML/XmlElement[${Variables/IndexValue}]}
Java 表示式使用

您可以輸入 Java 語法作為建置器的輸入。

在產生時,IBM WebSphere Portlet Factory Servlet 會評估 Java 表示式,並將值提供給建置器呼叫的輸入。 如果您想要在 WebApp 中指定元素,但選擇器或建置器呼叫編輯器並不直接支援該元素,則可以使用 Java 表示式進行間接參照。 例如,如果想要將 WebSphere Portlet Factory 的 URL 提供給輸入,則可以使用下列 Java 表示式:
${Java/webAppAccess.getRequestData().getContextURL()}

呼叫使用兩個引數的方法 MethodName

${Java/webAppAccess.callMethod("MethodName", arg1,  arg2)}
組合間接參照類型

您可以使用間接參照類型的組合。

例如,您可以將 Java 表示式與變數參照結合,以衍生影像的 URL:
${Java/webAppAccess.getRequestData().getContextURL()}/${Variables/ImageFileName}

ImageFileName 變數包含影像的檔名。

清單規格

您可以向接受逗號區隔清單的任何建置器輸入,提供實作 java.util.Collection 或延伸 java.util.Iterator 的任何物件,因而在建置器輸入值中移入基礎集合中的項目。

例如,下列間接參照會使用 Java 表示式,來傳回包含 myInput 建置器呼叫值的 ArrayList 的「疊代」:
${Java/webAppAccess.getRequestInputs().getInputValues("myInput")}
新增表示式至選擇參照對話框

您可以將自己的表示式新增至選擇參照對話框的 Java 節點。

您可以執行此動作,來確保常用表示式可以從對話框中取得。 若要將表示式移入選擇參照對話框,您必須將定義此表示式的指令行新增至 ../WEB-INF/config/IndirectJavaExpressions.config 檔案。 例如:

  • 若要新增您自己的表示式,使其顯示於 Java 節點樹狀結構最上層,請將下列指令行新增至檔案:
    MyExpressionName=webAppAccess.getMyExpressionData()
  • 若要新增顯示於表示式樹狀結構中下一個層次的表示式,請輸入:
    MyExpressionCollection/MyExpressionName1=webAppAccess.getMyExpressionData1()
    MyExpressionCollection/MyExpressionName2=webAppAccess.getMyExpressionData2()
註: 因為 WebContent/WEB-INF/config 目錄依預設是已排除的資源,因此您需要置換團隊檔案及目錄排除項目,以確保您的新檔案或已修改檔案會在來源控制儲存體中持續更新。

模型選擇器

您可以使用對話框來協助將模型指定為建置器輸入。

許多建置器都有需要您指定模型的模型輸入。 按一下省略符號按鈕 (選擇器圖示) 會顯示「模型選擇器」對話框,您可以在其中導覽至模型並進行選取。 依預設,建置器中使用的模型位置指定是模型的絕對參照。

有一個選項 (使用相對模型參照) 可讓模型參照成為相對參照。 因此,從模型 A 到模型 B 的參照是基於模型 A 在模型資料夾中的位置。 使用相對參照時,如果您將兩個模型從一個資料夾移動或複製到另一個資料夾,則模型 A 的新副本會參照模型 B 的新副本。 使用絕對參照時,模型 A 的新副本仍會參照原始位置上模型 B 的原始副本。

關於資料參照技術

建置器呼叫編輯器支援常用參照方法及語法。

Web 應用程式包括一組執行時期實體,如變數、方法及服務呼叫。 您可以建置元素之間的參照,來交互連接這些 Web 應用程式元素。 您可以使用數種方式來建立參照。 不過,您可能發現您需要結合間接參照來提供適當的輸入值,或需要使用類似於 XPath 的表示法來取得 XML 元素的值。

若要使用替代輸入形式,您需要瞭解指定建置器輸入的正確語法。 下列各節中的資訊說明可用的輸入類型,並提供使用特定輸入類型所必須遵循的語法範例:

變數資料參照及 ${ ... } 語法的用法

您可以在模型中使用間接資料參照。 例如,您可以使用使用者輸入並已儲存於變數中的值,來作為建置器的輸入。 使用變數的間接資料參照,可以完成此動作。

間接參照的語法需要在錢幣符號 $ 後面跟隨一對大括弧,如下所示:

${...} 

大括弧會括住資料來源。 在下列按鈕標籤範例中,您可以輸入下列資料參照,在按鈕標籤輸入中使用名為 ButtonLabel 的變數值:

${Variables/ButtonLabel}
使用 Java 表示式

您可以輸入 Java 語法作為建置器的輸入。 IBM WebSphere Portlet Factory 會安排在執行時期執行 Java 表示式,以提供建置器輸入值。 若要在 Web 應用程式中指定元素,但選擇器或建置器呼叫編輯器並不直接支援該元素,則可以使用 Java 表示式進行間接參照。 例如,若要為輸入提供 WebSphere Portlet Factory 的 URL,則您可以使用下列 Java 表示式:

${Java/webAppAccess.getRequestData().getContextURL()}

下列表示式會將文字輸入值設為接受引數之方法傳回的值:

${Java/webAppAccess.callMethod("MethodName", arg1, arg2)}
組合間接參照類型

若要衍生要匯入之頁面的值,您可以使用間接參照類型的組合,透過與下列內容類似的間接參照:

${Java/webAppAccess.getRequestData().getContextURL()}/${Variables/PageToImport}

PageToImport 變數包含要匯入的頁面名稱。

參照可服務資源

您放置及建立專案所在的位置包含所有 HTML 頁面、產生的 JSP 頁面及其他可服務資源,也稱為可服務內容根目錄。 當開發可能在多個應用程式環境定義中發佈或匯出的 Web 應用程式時,請使用 webAppAccess.getRequestData().getContextURL() 方法,來確保對可服務資源的任何參照具有足夠的彈性,以適用於所有應用程式環境定義。 請參閱使用 Java 表示式。 若要讓可服務資源的參照具有彈性,當參照方法中或建置器呼叫輸入中的可服務資源時,請使用方法 webAppAccess.getRequestData().getContextURL()。 例如,您可以輸入下列內容,作為「匯入的頁面」建置器之「要匯入的頁面」輸入的值:

${Java/webAppAccess.getRequestData().getContextURL()}/pages_to_import_dir/MyPage.htm

無論執行此模型所在的應用程式環境定義為何,此語法一律評估為 pages_to_import_dir 目錄。

間接參照方法

若要存取方法呼叫所產生的資料,您可以使用間接資料參照。 您可以使用任何不採用引數的方法呼叫或方法。 但該方法必須傳回值,以便您參照。 您也可以連結方法呼叫的結果與其他方法呼叫或字串。 此間接類型的語法是:

${MethodCall/methodName}

若要選取參照的方法,請使用參照選擇器,它會顯示樹狀結構,其中包括稱為方法呼叫的區段。 顯示的區段會列出可以使用的模型動作清單、方法及方法呼叫。

請注意,您不能像使用 XML 變數一樣,瀏覽至方法的結果。 例如:

${Variables/Customers/customer[2]/name}

如果需要對資料進行其他處理或之前不能進行處理時,請考慮使用方法的間接資料參照。 使用方法間接參照的範例位於「重複區域」建置器中。 通常,很難在執行此建置器時進行任何處理。 不過,藉由使用方法的間接參照,您可以執行該處理。 例如,您可以使用方法呼叫來替代表格列的背景顏色。 建立稱為 getRowColor 的方法,這種方法每次會傳回一種顏色。 然後,若要設定背景顏色,請在附加至表格列的內容 Setter 中呼叫此方法。

間接參照值的連結

若要輸入文字字串作為建置器輸入,您可以直接在輸入區域中輸入字串。 此外,針對任何會採用字串的輸入,您可以連結多個字串。 例如,在「格式化文字」建置器的輸入中,您可以輸入下列整行:

The values of Foo and Bar are: ${Variables/Foo} and ${Variables/Bar}

在重新產生「文字」建置器時,兩個 ${...} 區域會取代為來自所參照之變數 (假設它們具有值) 的適當字串值。

使用類似的技術,您還可以讓間接參照成為巢狀。 如果您具有名為 FooOrBar 的變數,其結果為文字 Foo 或文字 Bar,您可能具有下列行:

The value of ${Variables/FooOrBar} is "${Variables/${Variables/FooOrBar}}"

引號中的部分可評估為儲存於 Variables/FooVariables/Bar 中的字串,要視 Variables/FooOrBar 的值而定。 因此,給定下列值:

Variables/Foo: dataVariables/Bar: stuff
Variables/FooOrBar: Bar

上面一行中的表示式結果是:

The value of Bar is "stuff"
清單索引參照及使用方括弧

間接參照值的連結中所說明的某個參照層次通常不支援資料存取及操作的需要。 可以進一步延伸間接參照機制。

您可以在語法中使用方括弧字元 [],來參照清單中的元件。 請參閱參照 XML 結構中的子元素。 您可以將此語法與間接參照機制搭配使用,以存取清單中的元件。 例如,名為 TableData 的變數具有多個子項,全部命名為 Row。 每個子項的下面還有更多的資料,如 NameAddress。 您可以指定下列程式碼,以存取第三列中的名稱:

${Variables/TableData/Row[2]}

請注意,索引由 0 開始,所以索引 0 是第一個,索引 1 是第二個。

如果變數 TableData 還有其他子項,則上述範例會選取第三個列,而忽略任何其他子項。 若要參照 TableData 的第三個子項,請使用星號 (*) 來代表任何子項:

${Variables/TableData/*[2]}

您還可以使用其他變數指定索引本身。 例如,變數 RowIndex 指定表格的特定列。 下列語法可以指定現行列:

${Variables/TableData/*[${Variables/RowIndex}]}
參照 XML 結構中的子元素

您可以使用 / 字元在以標籤表示的資料字串中向下瀏覽並存取元素。 您還可以將此技術與間接參照結合,以選取名稱儲存於變數的子元素。 例如,變數 Data 具有 NameAddress 子元素,且變數 WhichOne 的值為單字 Name 或單字 Address。 因此,下列參照會傳回儲存於 ${Variables/Data/Name} 中的值或儲存於 ${Variables/Data/Address} 中的值,視變數 WhichOne 儲存的是其中哪一個值而定。

${Variables/Data/${Variables/WhichOne}}

這些技術可以互相結合。 使用「表格資料」範例,如清單索引參照及使用方括弧中所述。 如果您具有其他變數 ColumnName,其會選取應存取的直欄,則下列語法會取得所選取列中所選取直欄的資料格資料:

${Variables/TableData/*[${Variables/RowIndex]/@ColumnName}
參照 IXml 物件中的元素

您可以瀏覽服務呼叫或方法所傳回並儲存於變數中之 IXml 物件的結構。 下列範例說明可用來建立過濾器以在 XML 文件中尋找元素的技術。

所有範例都以下列範例 XML 程式碼區段為基礎:

<Employees>
  <Employee age="25">
     <Name>John Smith</Name>
     <Address>14 Park Lane</Address>
     <City>Portsmouth</City>
     <State zip="03801">New Hampshire</State>
  </Employee>
  <Employee age="21">
     <Name>Ted Jones</Name>
     <Address>26 Harbor View</Address>
     <City>Hampton</City>
     <State zip="03802">New Hampshire</State>
  </Employee>
  <Employee age="35">
     <Name>Jill Jeffries</Name>
     <Address>100 Oak Lane</Address>
     <City>Exeter</City>
     <State zip="03803">New Hampshire</State>
  </Employee>
  <Employee age="40">
     <Name>Josh Vanderwall</Name>
     <Address>45 Maple Ave.</Address>
     <City>Bedford</City>
     <State zip="03804">Massachusetts</State>
  </Employee>
</Employees>
範例 1、尋找指定的元素

下列參照會尋找指定的元素名稱:

${Employees/Employee/Name}

此表示式會傳回第一個相符的元素。 在此範例中,傳回的元素是 <Name>John Smith</Name>

範例 2、尋找元素的第二個實例

下列參照會尋找名稱為 Name 之元素的第二個實例:

${Employees/Employee/Name[1]}

此表示式會傳回由 0 開始之索引編號所指定的相符元素。 在此範例中,傳回的元素是 <Name>Ted Jones</Name>

請注意,在此情況下,您還可以使用間接參照。 例如,您可以輸入:

$Variables/Foo/Bar[${Variables/Index}]

表示式會尋找儲存於特定索引上某一變數中的元素。

範例 3、尋找元素的特定值

下列參照會尋找文字值等於 Jill Jeffries 的元素實例 Name

${Employees/Employee/[Name=Jill Jeffries]}

此表示式會傳回元素文字所指定的相符元素。 在此範例中,傳回的元素是 <Name>Jill Jeffries</Name>

範例 4、尋找實例及屬性

下列表示式會尋找指定的屬性值等於 40 的實例 Employee

${Employees/Employee[@age=40]}

此表示式會傳回屬性文字所指定的相符元素。 在此範例中,傳回的元素是:

<Employee age="40">
  <Name>Josh Vanderwall</Name>
  <Address>45 Maple Ave.</Address>
  <City>Bedford</City>
  <State>Massachusetts</State>
</Employee>
範例 5、使用萬用字元尋找元素

若要尋找第二層元素不明的實例 Name,請使用萬用字元 * 來指定元素名稱。

註: 只有整個元素名稱才支援萬用字元。
${Employees/*[2]/Name}

此表示式會傳回索引編號所指定的相符元素。 在此範例中,傳回的元素是:

<Name>Jill Jeffries</Name>
範例 6、尋找母元素

下列語法會尋找指定的屬性 zip 值等於 03804State 的母元素:

${Employees/Employee/State[@zip=03804]/..}

此表示式會傳回屬性文字所指定的相符母元素。 在此範例中,傳回的元素是:

<Employee age="40"> 
  <Name>Josh Vanderwall</Name>
  <Address>45 Maple Ave.</Address>
  <City>Bedford</City>
  <State zip="03804">Massachusetts</State>
</Employee>
執行模型動作

此資訊說明如何執行模型動作。

執行模型

您可以透過建立模型實例、擷取該模型實例的 WebAppAccess 物件,並呼叫模型的 main 方法,來執行另一個模型。 getModelInstance() 方法會採用下列三個引數:

modelName
指定相對於 IBM WebSphere Portlet Factory WEB-INF/models 目錄之模型路徑的字串。
profile
指定在從模型重新產生 Web 應用程式時,要使用之明確設定檔的字串。 您可以使用下列語法來指名要使用的一個設定檔: ProfileSetName!ProfileName

若要指名多個設定檔,請使用加號 (+) 分隔設定檔名稱,如下所示:ProfileSetName!ProfileName+ProfileSetName!ProfileName

singleton
一個布林值,指定是否要建立模型的單態實例。

WebSphere Portlet Factory 會針對每個階段作業,建立一次模型的單態實例。 對於非單態模型, WebSphere Portlet Factory 會在每次要求時建立它們的實例。

下列程式碼範例顯示如何透過方法執行另一個模型:

WebAppAccess remoteWebAppAccess =
webAppAccess.getModelInstance("myModels/ModelName", "Region!Southwest", "false");
remoteWebAppAccess.callMethod("main");
顯示頁面

只需對現行 WebAppAccess 物件呼叫 processPage() 方法,即可顯示現行模型中的頁面。

webAppAccess.processPage("pageName");

若要顯示鏈結之模型中的頁面,請呼叫 processPage(),如下所示:

webAppAccess.processPage("LinkedModelName.pageName");

若要顯示另一個模型中的頁面,請參閱透過方法執行另一個模型的程式碼。 請不要呼叫 remoteWebAppAccess 物件上的 callMethod(),要呼叫 processPage(),並提供頁面名稱作為引數。

執行服務呼叫
webAppAccess.processAction("ServiceCallName.invoke");
執行動作清單
webAppAccess.processAction("ActionListName");
呼叫其他方法

您可以使用 callMethod() 方法,來呼叫現行模型或鏈結之模型中的方法。 在指定方法名稱之後,可以將引數以逗號區隔清單傳遞至方法,如下所示:

現行模型中的方法
webAppAccess.callMethod("MethodName", arg1, arg2);
鏈結之模型中的方法
webAppAccess.callMethod("LinkedModelName.MethodName");
LJO 中的方法
webAppAccess.callMethod("LJOName.MethodName");
鏈結之模型中的 LJO 方法
webAppAccess.callMethod("LinkedModelName.LJOName.MethodName");
透過 URL 傳遞引數至方法

您不能直接執行透過 URL 取得引數的方法。 不過,您可以用名稱及值配對作為引數,新增至 URL,並從 WebApp 的 RequestData 物件擷取那些引數值。 下列程式碼範例會擷取在下列 URL 中傳遞的引數值:

http://localhost:7001/Factory/webengine/URLTester/Action!MethodFielder?name=Tom&id=111?method=MethodWithArgs

LJO 類別中的方法主體:

public void MethodFielder(WebAppAccess webAppAccess) {
String name = webAppAccess.getRequestInputs().getInputValue("name");
String id = webAppAccess.getRequestInputs().getInputValue("id");
String method = webAppAccess.getRequestInputs().getInputValue("method");
webAppAccess.getVariables().setString("Name", name);
webAppAccess.getVariables().setString("ID", id);
webAppAccess.callMethod(method, name, id);
}
處理表單提交

「LJO 方法」及「方法」建置器呼叫會透過 RequestInputs 介面,或者將引數導向至方法,來存取透過 FORM POST 或 URL 查詢參數提交的輸入。

透過 URL 呼叫的方法應該採用無 (零) 引數,或只採用 WebAppAccess 引數,並應透過 RequestInputs 介面從「HTTP 要求」擷取輸入。

若要擷取 WebApp 要求之 RequestInputs 現行實例的參照,請呼叫:

RequestInputs requestInputs = webAppAccess.getRequestInputs();

例如,若要取得「勾選框群組」輸入的所有輸入,您可以執行如下的項目:

Iterator inputs = webAppAccess.getRequestInputs().getInputValues("MyCheckboxGroup");
while(inputs.hasNext()) {
//process input values here
}
與階段作業物件互動

透過設定階段作業的屬性,並將那些屬性的值指定為要在模型之間共用的物件,就可以將物件儲存在階段作業中。

將物件儲存在階段作業中
例如,如果您要與另一個模型共用變數 companyname 的值,就可以使用與下列內容類似的程式碼:
webAppAccess.getHttpServletRequest().getSession().put("companyname", webAppAccess.getVariables().getText("companyname"));
從階段作業擷取物件
若要從階段作業取得物件以用於現行模型,請對 Session 物件呼叫 get 方法。 例如,若要擷取由「將物件儲存在階段作業中」區段中程式碼儲存的公司名稱,請實作與下列內容類似的程式碼:
String companyName = webAppAccess.getHttpServletRequest().getSession().get("companyname");
從階段作業中移除物件
若要從階段作業中移除物件,請對 Session 物件呼叫 remove 方法。 例如,若要移除由「將物件儲存在階段作業中」區段中程式碼建立的 company_name 階段作業屬性,請實作與下列內容類似的程式碼:
webAppAccess.getHttpServletRequest().getSession().remove("companyname");
撰寫方法

方法會執行的工作包括:處理表單輸入、執行 Web 應用程式的其他部分 (甚至於其他 Web 應用程式),以及執行 WebApp 要如您希望的方式運作所需的任何其他邏輯。

方法中使用的主要物件是 WebAppAccess 物件,這是 com.bowstreet.webapp.WebAppAccess 類別的實例。 WebAppAccess 物件會充當 WebApp 物件所代表之 WebApp 結構的 Proxy,這是 com.bowstreet.webapp.WebApp 類別的實例。

產生至模型動作的 URL

您可以產生現行模型中或另一個模型中動作的 URL。

webAppAccess 物件上呼叫 getActionURL()getURLMapper().getURL() 方法。
註: 如果您新增參數至 URL 中,URLMapper 會視需要執行參數的編碼作業。
產生現行模型中動作的 URL
下列方法呼叫會傳回現行模型中 actionName 方法的 URL:
webAppAccess.getActionURL("actionName");
傳回的 URL 字串格式如下:
/appcontext/servletname/models/path/to/models/Action!actionName
其中:
  • appcontext 是應用程式環境定義根目錄
  • servletname 是 Servlet 的名稱
  • path/to/models 是模型的路徑
  • actionName 是要執行的動作
例如:
/MyApp/webengine/test/TestModel/Action!getCustomers
產生其他模型的 URL
下列方法呼叫會傳回 ModelName 模型中 GetCustomers 動作的 URL,並包含明確套用至模型的 Northeast 及 Gold 設定檔。
webAppAccess.getURLMapper().getURL("ModelName", "GetCustomers",
  "Region!Northeast$ServiceLevel!Gold", null);
註: 傳遞至 getURL() 方法的最後一個引數是傳輸通訊協定。 您也可以指定 httphttps,來強制通訊協定類型,或者也可以指定 null,來使用模型的預設通訊協定。
傳回的 URL 字串格式與自 getActionURL() 傳回的字串類似,但是它包含指定的設定檔資訊,如下列程式碼所示。
/MyApp/webengine/method/MethodTest2/
Action!main/Profile!Region!Northeast$ServiceLevel!Gold 
取得系統內容

您可以取得 cluster.propertiesbowstreet.properties 檔案中儲存的 IBM WebSphere Portlet Factory 内容值。

存取由呼叫 webAppAccess.getSystemProperties() 傳回的 com.bowstreet.util.SystemProperties 物件。 利用 SystemProperties 物件,您可以存取資訊,例如文件根目錄的目錄路徑、伺服器的 URL 及其他資訊。 呼叫下列方法:

文件根目錄的目錄路徑
webAppAccess.getSystemProperties().getDocumentRoot();
傳回指定 WebSphere Portlet Factory 可服務內容根目錄之目錄路徑的字串。 例如:
AppServerDeployDir\MyApp.ear\MyApp.war
WebSphere Portlet Factory WEB-INF 目錄的目錄路徑
webAppAccess.getSystemProperties().getWebInfDir();
傳回指定 WebSphere Portlet Factory 非可服務內容根目錄之目錄路徑的字串。 例如:
AppServerDeployDir\MyApp.ear\MyApp.war\WEB-INF
WebSphere Portlet Factory 伺服器的 URL
webAppAccess.getRequestData().getContextURL();
傳回指定 WebSphere Portlet Factory 之 URL 的字串。 例如:
http://127.0.0.1:9080/MyApp
WebSphere Portlet Factory Servlet 的 URL
webAppAccess.getRequestData().getServletURL();
傳回指定現行 WebSphere Portlet Factory Servlet 之 URL 的字串。 例如:
http://127.0.0.1:9080/MyApp/webengine
取得及設定變數值

透過呼叫 webAppAccess.getVariables() 方法,可以存取 Web 應用程式中的所有變數。

通常,一次會取得或設定一個變數的值。
取得簡式類型 (String、int 等) 的變數值
String valueOfMyVariable = webAppAccess.getVariables().getString("MyVariable");
若要取得 XMLData 類型之變數中儲存的 XML 結構
IXml valueOfMyXMLVariable = webAppAccess.getVariables().getXml("MyXMLVariable");
若要取得 XMLData 類型之變數中元素的文字值
透過呼叫 getXmlText() 方法,並提供您要傳回其值之元素的變數名稱及 XPath,可以取得變數所包含之 XML 結構中特定元素的文字值。 下列程式碼範例會傳回 <customers /> 結構中第二個 <customer /> 元素之 <name /> 元素的文字:webAppAccess.getVariables().getXmlText("VariableTest", "customers/customer[1]/name");
若要取得 XMLData 類型之變數中的元素
透過呼叫 getXmlElement() 方法,並提供要傳回之元素的變數名稱及 XPath,可以取得變數所包含之 XML 結構中的特定元素。 下列程式碼範例會傳回 <customers /> 結構中的第二個 <customer /> 元素:
webAppAccess.getVariables().getXmlElement("VariableTest", "customers/customer[1]");
若要設定簡式類型的變數值
webAppAccess.getVariables().setInt("MyIntVariable", 4);
若要修改 XMLData 類型之變數中儲存的 XML 結構
透過使用 getXML() 方法取得 XML 結構,然後使用 IXml API 修改該結構,可以變更變數中儲存的 XML 結構。 getXML() 方法會傳回結構的參照,因此在修改 getXML() 傳回的結構之後,無需將結構「設回」變數。

下列程式碼範例會移除 <customers /> 結構中的第二個 <customer /> 元素:

IXml customers = webAppAccess.getVariables().getXml("CustomerList");
customers.removeChildElement(customers.findElement("customers/customer[1]"));
若要設定 XMLData 類型之變數中元素的文字值
IXml customers = webAppAccess.getVariables().getXml("CustomerList");
customers.setText("customers/customer[2]/name", "NewName");
關於從要求取得資料

透過呼叫 webAppAccess.getHttpServletRequest() 方法,可以存取 HttpServletRequest 物件。

您可以從 HttpServletRequest 物件擷取下列資訊:
使用者名稱
webAppAccess.getHttpServletRequest().getUserPrincipal().getName();
伺服器名稱
webAppAccess.getHttpServletRequest().getServerName();
內容類型
webAppAccess.getHttpServletRequest().getContentType();
語言環境
webAppAccess.getHttpServletRequest().getLocale();

如需公用 (public) 方法的完整說明,請參閱 JDK 安裝系統中,javax.servlet.http.HttpServletRequest 類別的 Javadoc。

修改回應

使用 HttpServletResponse 物件,可以修改方法所傳回資料的內容類型。

此物件會將回應的 ContentType 設為非文字或 html 的內容。

您也可以將標頭新增至回應,或者修改對用戶端的回應。

例如,下列程式碼範例設定回應的 ContentType 傳回 Microsoft Excel 試算表:

public void setContentTypeXL(WebAppAccess webAppAccess) {
webAppAccess.getHttpServletResponse().setContentType("application/msexcel") ;
try {
File excelSheet = new File(webAppAccess.getSystemProperties().getDocumentRoot()+
File.separator + "Schedule.xls");
int numFileBytes = (int)excelSheet.length();
byte[] fileBytes = new byte[numFileBytes];
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(excelSheet));
int i = 0;
while(i < numFileBytes){
fileBytes[i] = (byte)bis.read();
i++;
}
webAppAccess.getHttpServletResponse().getOutputStream().write(fileBytes);
}
catch (IOException ioe) {
System.out.println(ioe+"Cannot find file.");
}
}
註: 您可以查看 IBM WebSphere Portlet Factory WEB-INF/web.xml 檔案中的 <mime-mapping /> 元素,來尋找受支援的 MIME 類型。

如需公用 (public) 方法的完整說明,請參閱 JDK 安裝系統中,javax.servlet.http.HttpServletResponse 類別的 Javadoc。

選擇變數類型

您可以指定變數為此檔案中的其中一種類型。

字串
指定此變數可以包含一個字串值。 例如,"customer name"。
XML
指定此變數可以包含 XML 結構。 例如:
<customers>
<customer>
<name>Jane</name>
<id>1112</id>
</customer>
<customer>
<name>Jane</name>
<id>1112</id>
</customer>
</customers>
物件
指定此變數可以包含 Java 類別的實例。 例如,如果您有一個 Customer 類別的實例,則可以將該物件儲存為物件類型變數的值。
布林
指定此變數可以包含布林值。 例如,false
倍精準數
指定此變數可以包含倍精準度浮點數值。 例如,22.49。
浮點數
指定此變數可以包含浮點數值。 例如,3.40282e+38。
整數
指定此變數可以包含整數值。 例如,1786。
長整數值 (Long)
指定此變數可以包含長整數值。 例如,122546739499。

此外,您可以指定變數為綱目所定義的類型。 這些類型會顯示在「變數類型選擇器」中。 如果您選取綱目定義的類型,請務必從綱目的「類型」資料夾中選擇,而不是從其「元素」資料夾中選擇。

註: 定義許多元素的綱目,可能會在用來決定變數或方法引數之類型的選擇器中,造成記憶體不足的情況。

建立巢狀間接參照

使用參照選擇器,可以建立巢狀間接參照。

  1. 開啟模型中的建置器呼叫編輯器。
  2. 使用參照選擇器,在輸入方塊中移入開始的間接參照。
  3. 將游標放置在要插入其他間接參照的位置。
  4. 按一下參照選擇器按鈕 瀏覽按鈕 會開啟參照選擇器視窗。
  5. 選取所要的模型元素,並按一下確定
參照選擇器會在游標位置插入新的間接參照。

刪除建置器表格中的列

許多建置器會在表格中提供輸入,您可以從中刪除某列以移除相關的輸入值。

如果您從建置器輸入 (例如,在「動作清單」建置器) 的表格中移除某列,請務必使用正確的技術,才不會讓與該列相關的輸入被視為空值。

用滑鼠右鍵按一下列,然後按一下刪除列

如果您刪除列的內容,而不移除該列,則建置器會將該輸入視為空值。

該列已從表格中移除,而且不會使用相關輸入。

在個別視窗中開啟建置器呼叫編輯器

您可以從 IBM WebSphere Portlet Factory Designer 視窗的個別視窗中開啟建置器呼叫編輯器。

通常,建置器呼叫編輯器會在 WebSphere Portlet Factory 視景的「編輯區」(作為已加上標籤的畫面) 中執行。 您可以使用喜好設定來變更此行為。 個別視窗讓您有更多的工作空間,並以較大的字型來顯示文字。
  1. WebSphere Portlet Factory 視景中,按一下視窗 > 喜好設定
  2. 在「喜好設定」視窗中,按一下 Websphere Portlet Factory Designer
  3. 建置器呼叫編輯器中,設定對話框視窗,然後按一下確定

在您下次啟動「工作台」,並將建置器新增至模型時,建置器呼叫編輯器會在個別視窗中開啟。

WebSphere Portlet Factory Wiki 視圖

WebSphere Portlet Factory Wiki 視圖會連接至其他產品資訊,例如,最佳實務的準則。

開啟 WebSphere Portlet Factory Wiki 視圖時,Eclipse 瀏覽器會透過網際網路連接至 WebSphere Portlet Factory Wiki。 依預設,瀏覽器會開啟「聚光燈」頁面。 此頁面會有鏈結指向包含建議的文章,協助您獲得 WebSphere Portlet Factory 系列產品的最佳體驗。 透過頁面底端的鏈結,您可以存取其他 Wiki 和產品資訊來源。

在頂端的視圖工具列中,有一個清單,可讓您選取 Wiki 的其他部分。 例如,您可以按一下範例和技術,即包含符合您應用程式的技術範例和文章的 Wiki 段落。 工具列中的圖示會讓您在瀏覽器進行導覽。

資源日誌視圖

「資源日誌」視圖會顯示現行專案階段作業中的重要事件。

此視圖會顯示在此 Eclipse 階段作業中前次執行之「新增或移除特性集 (或 WebApp)」作業的結果。 該視圖會顯示專案中已移除、修改及新增的所有檔案清單,以及由於最近複製或移除作業所產生的那些變更而發生的任何錯誤。 使用此視圖,可以追蹤在現行開發階段作業中所發生的活動。 重新啟動 Eclipse 時,會清除此視圖。

按一下視窗 > 顯示視圖 > 資源日誌,以顯示視圖。 該視圖會在 WebSphere Portlet Factory 視景的「作業」視圖區域中開啟。

「視圖」功能表會提供過濾及複製選項。 此視圖中顯示的事件集,分類為可從視圖功能表內存取的下列過濾類型:

所有事件
顯示全部內容。 大多數顯示的事件是順利完成的複製或刪除作業。
異常事件 (預設值)
顯示您可能會感興趣的事件 (包括錯誤),以及發現已由使用者修改或是改寫的候選檔案。
錯誤
僅顯示像是無法移除或複製部分檔案的事件。

使用複製

除了事件過濾選項之外,「資源日誌」視圖蹦現功能表還提供複製作業。 「複製」會將視圖內容當作文字置於剪貼簿 (以「回車」及「換行」字元組合分隔各行)。

註: 複製作業會忽略視圖中選取的任何項目。

複製對於提供專案活動的綜合性記錄非常便利。 例如,如果您需要改寫數個檔案,但由於某種原因無法改寫,複製就可讓您取得那些檔案的清單,以供將來參考。 此外,您可以將檔名手動複製並貼到其他指令,來完成改寫程序。

記載的事件類型

以下為視圖中會記載的所有事件類型,及其在視圖中的呈現方式。

註: {0} 會取代為要複製/移除的檔案。 {1} 是「來源」目錄,而 {2} 是「目標」目錄:
已將檔案複製到目的地
「將 {0} 從 {1} 複製到 {2}」
使用者未修改檔案,但已從目的地將其移除
「已從 {2} 移除 {0}」
使用者已修改檔案,但已從目的地將其移除
「已從 {2} 移除已修改的 {0}」*
使用者已修改檔案,但未移除檔案
「保留 {2} 中已修改的 {0}」*
已改寫現有檔案
「已從 {1} 改寫 {2} 中現有的 {0}」*
未改寫現有檔案
「保留 {1} 中現有的 {0} - 新檔案在 {1} 中」*
已嘗試移除,但無法移除
「無法從 {2} 移除 {0}」**
無法改寫現有檔案
「將 {0} 複製到 {1} 時發生錯誤 - 新檔案在 {1} 中」**
*: 標記為 * 的事件是「異常的」事件
**: 標記為 ** 的事件是「錯誤」事件 (也是「異常的」事件)。

建立執行配置

您可以建立「IBM WebSphere Portlet Factory 模型」配置類型。

  1. 按一下執行 > 執行配置
  2. 在對話框中,從清單中選取 WebSphere Portlet Factory 模型,然後按一下「新建」圖示。
  3. 名稱輸入欄位中,輸入此配置類型的名稱。
  4. 主要標籤中,選取執行具名模型
  5. 專案中,按一下瀏覽並選取模型所在的專案。
  6. 模型中,按一下瀏覽並選取要執行的模型。
  7. 對於其他四個標籤 (伺服器瀏覽追蹤一般),接受預設值,或輸入必要資訊。
  8. 選擇性的: 共用在我的最愛功能表中顯示下,選取此選項,讓名稱出現在「執行身分」圖示下拉清單中。
  9. 按一下套用以儲存配置。
  10. 按一下關閉以結束對話框。

執行配置對話框

IBM WebSphere Portlet Factory Designer 中,可以設定執行配置內容。

WebSphere Portlet Factory Designer 內部執行模型時可使用這些內容。

標準 Eclipse「執行配置」對話框,可讓您定義從 Eclipse 環境內,執行 (啟動) 程式時所使用的參數。 執行模型是一種特定執行配置類型。 因此,您必須先定義類型為 Factory 模型的新執行配置,才可以執行模型。

註: 您只能從 WebSphere Portlet Factory、Java 或「外掛程式開發」視景使用「執行配置」對話框。

您可以配置 Factory 模型類型,讓其執行為:

  • 現行模型 (亦即,目前開啟的「模型編輯器」中的任何模型)。
  • 具有特定名稱的模型 (亦即,模型可不在「模型編輯器」中)。
註: 您可以同時建立兩種類型的「執行」模式。

作為「執行」配置的一部分,您會提供要執行模型之 WebSphere Portlet Factory 伺服器的相關資訊,以及要使用的瀏覽器類型。 您還可以指定是否要開啟 WebSphere Portlet Factory 伺服器追蹤。

執行配置欄位值

此表說明您可以在「執行配置」對話框之各種標籤中設定的內容值。

主要標籤 說明
要執行的模型 您可以配置「Factory 模型」類型,讓其以下列兩種模式的其中一種執行:
從現行作用中編輯器執行模型
要執行的模型是位於目前開啟之「模型編輯器」中的模型。
註: 如果稍後執行模型時未開啟任何「模型編輯器」,則會發生執行時期錯誤。
執行具名模型
要執行的模型是在名稱:輸入方塊中命名的特定模型。 使用瀏覽按鈕,從要執行的模型選擇器中選取模型。
註: 當您選擇「執行具名模型」的模式時,也必須選取專案。
伺服器標籤 說明
伺服器主機 輸入伺服器主機名稱,它是執行您要連接到 IBM WebSphere Portlet Factory Servlet 的伺服器。 如果 WebSphere Portlet Factory Servlet 及 WebSphere Portlet Factory Designer 位於同一機器上,您可以使用 localhost
伺服器埠 輸入 WebSphere Portlet Factory 接聽要求的埠號。

範例:9080

瀏覽器標籤 說明
瀏覽器指令 輸入執行模型時,要執行的 Web 瀏覽器路徑。
追蹤標籤 說明
執行系統追蹤 啟用此勾選框,以在您執行模型的任何時間,列印方法及頁面動作的相關系統追蹤資訊。
一般標籤 說明
執行配置類型 此欄位使用「執行」配置設定,以定義檔案的位置:
本端
指定「執行」配置檔儲存在本端,從而讓「執行」配置專用於單一使用者。
共用
指定「執行」配置檔儲存在工作區中,且可以透過標準團隊機制在儲存庫中共用。 使用瀏覽按鈕,從資料夾選項選擇器選取資料夾。
已執行時要切換至或開啟的視景 以執行模式「執行」模型 (不支援除錯模式)。 以執行模式執行程式,但是也許不能暫停或檢查執行。

此欄位可讓您選擇在「執行」配置已執行時,要變成作用中的視景。

在我的最愛功能表中顯示 勾選執行方框,以指定「執行」配置應該出現在「執行我的最愛」清單中。

刪除執行配置

若要刪除 IBM WebSphere Portlet Factory 模型配置類型,請執行下列步驟:

  1. 執行功能表選擇執行...
  2. 執行配置對話框中,選擇「執行配置」清單中的現有配置。
  3. 按一下刪除
  4. 確認執行配置刪除對話框上按一下
  5. 按一下關閉以結束對話框。

關於共用專案資源

您可以在開發人員之間共用專案資源。

您可以建立或安裝 IBM WebSphere Portlet Factory 保存檔。 保存檔是使用「 WebSphere Portlet Factory 匯出/匯入精靈」建立的特殊壓縮檔。 此精靈可整合至 WebSphere Portlet Factory Designer 中的檔案 > 匯出檔案 > 匯入功能表。 保存檔為您提供輕鬆地收集及分送專案元件的方法。

關於使用匯出及匯入

IBM WebSphere Portlet Factory Designer 提供您可以用來匯出及匯入專案資源的精靈。

您可能要匯出及匯入專案資源來與其他開發人員共用資源。 您可以使用此精靈來建立 WebSphere Portlet Factory 保存檔的 Zip 檔案。

WebSphere Portlet Factory 保存檔是可以用來套裝資源以進行共用的 Zip 檔。 此檔案是由「 WebSphere Portlet Factory 匯出」精靈自動建構。 這些特殊目的性質的精靈會納入 Eclipse 的 匯出/匯入功能表。

儲存至保存檔的所有資源都與專案的可服務內容目錄 (專案根目錄) 相關。

團隊開發環境

IBM WebSphere Portlet Factory 應用程式只是一組協調的檔案,用來在設計時、發佈至開發伺服器或將完成的專案匯出至正式作業伺服器時,重新產生應用程式。

和任何開發工作一樣, WebSphere Portlet Factory 專案及應用程式檔案都應放置在來源控制系統下 (例如,CVS、SourceSafe 及 Rational® ClearCase®)。 將這些檔案放置在來源控制之下,可讓您對它們進行版本管理,並防止它們遺失。 將檔案放置在由下列活動組成的來源控制下。
  • 放置及佈置進行來源控制管理的專案。
  • 決定要進行版本管理的構件。
  • 管理分送的程式碼。

管理分送的程式碼

如同大多數 Portlet、Web 應用程式及小組件, WebSphere Portlet Factory 應用程式會配送(或發佈)為 WAR。

執行應用程式所需的任何項目,都會套裝在 WAR 建置程序中,其中包括設定檔集。 因此可以將自行包含的 WAR 檔案配送或發佈至任何適當的伺服器,並預期其可以執行。

放置及佈置進行來源控制管理的專案

在將此專案結構轉換為來源控制時,您可以使用兩種基本方法。

您可以將專案放置在檔案系統的任何位置,雖然通常會將它置於 Eclipse 工作區 (.../eclipse/workspace/) 中。 當您使用 WebSphere Portlet Factory Designer 建立 IBM WebSphere Portlet Factory 專案時,系統會自動以適當的結構建立所有必要的子目錄及檔案。 將專案結構轉換為來源控制的兩種方法如下:
個別專案方法
每個團隊成員在來源控制中都有一個單獨的區域,用來存放他們的專案構件 (例如,模型、Java 類別及建置器)。 此區域的形狀應該鏡映專案結構。

如果專案僅具有鬆散的連結 (例如 http 連線),則這種方式很有用。 如果建立的成品要更加緊密地放在一起 (在通用建置中),在選擇成品名稱時,需要避免名稱發生衝突。 如果具有通用建置時,就需要一套建置程序。

共用團隊專案
有一個共用來源控制區域,用來擷取團隊成員建立的所有構件。 這會包括所有原始檔、所有產生的檔案及所有 WebSphere Portlet Factory 出貨檔 (例如 WAR)。 此區域的形狀應該鏡映專案結構。

當數個人員操作同一應用程式的不同部分時,這種方法很有用。 每個開發人員都會有一份 WebSphere Portlet Factory 副本,並會將其工作移入共同來源控制區域中。 如果必要的話,每個團隊成員都可以輕鬆地將所有構件移入他們的專案中,並且可以輕易地避免名稱衝突。

在這兩種情況下,鏡映來源控制中的專案結構都可以促進在來源控制系統與專案之間進行輕鬆的傳輸。

版本化構件

如果您希望日後可以持續重建應用程式,請務必要擷取專案所使用的所有構件。

這顯然會涉及一連串的軟體層 (例如,作業系統、JVM、Eclipse 及 WebSphere Portlet Factory Designer)。 您應該至少擷取一些重要的軟體組件,以便未來可以進行修改。 建立 CD、DVD 或其他媒體,可以擷取大部分基礎層和專案構件的 Snapshot。

在專案層次中,針對要進行版本控制的項目,您有下列選擇。

整個專案
移入整個專案。 在這種情況下,來源控制會完全鏡映您的工作目錄結構。 此方法雖然容易,但是根據來源控制系統的特性及效能的不同,使用起來可能會顯得速度太慢或太笨重。 同時,如果您具有非常龐大的開發團隊,則這種方式會耗用許多伺服器空間。
新建及已修改的檔案
僅移入在專案中建立或修改過的檔案。 當您建立專案時,其中會包括 WebSphere Portlet Factory 出貨檔、原始檔及所有產生的檔案。 建立您專屬的資料夾,以在其中儲存模型、HTML 檔、Java 類別,以及為專案建立的其他檔案。

專案中只會保留原始檔及產生的檔案。 您可以移入產生的檔案 (不建議這樣做),如果您稍後要嘗試重新產生完全相同的環境,則可以輕鬆地從來源建立那些檔案。 產生的檔案位於 WEB-INF/factory/generated/ 資料夾中。 使用此技術時,您可以將原始檔保存在來源控制中,並讓每一位開發人員安裝相同版本的 WebSphere Portlet Factory 及專案所需的任何其他出貨軟體。

如果您在來源控制中使用「共用團隊專案」,並只移入新建或修改過的檔案,請在來源控制系統中設定一個「原始專案」,此專案中包含供團隊成員共用,並且預期不會修改的所有構件 (Jar、建置器定義、內容)。 如此,當您要針對新的團隊成員建立專案時,只需要將「原始專案」與「共用的團隊專案」合併即可。 當然,這兩個方面 (擷取什麼及如何建構其形狀) 會有許多變化。

下列是您至少應該儲存在來源控制系統中的專案構件。

  • WEB-INF/models/*.model 中的模型檔
  • WEB-INF/profiles/*.xml 中的設定檔集檔案
  • HTML 檔 (*.htm*.html)
  • JavaScript 程式庫、CSS 及 XSL 樣式表 (*.js*.css*.xsl)
  • 影像檔 (*.jpg*.gif)
  • 專案最上層以外的配置檔 (例如,*.properties*.xml 及 Java 資源軟體組)。
  • WEB-INF/work/source/*.java 中的 Java 來源檔
  • 自訂 (用戶端專用的) JAR 檔
  • WEB-INF/builders/*.bdef 中的自訂建置器定義
  • WEB- INF/config/selection_handlers/*.xml 中的「自訂設定檔選擇處理常式」檔案
  • 專案的建置 Script
  • 專案文件

請勿在來源控制中擷取或儲存下列構件。

產生的專案構件
不需要、也不建議您擷取及控制由 WebSphere Portlet Factory 重新產生處理程序所產生的構件 (JSP、Java 類別、綱目)。 這些正如編譯器的二進位輸出一樣。 只要保留原始檔 (例如,模型、設定檔及建置器),就可以重新產生所產生的構件。 產生的 Java 檔案位於 WEB-INF/factory/generated;產生的 JSP 頁面位於 /genjsp 目錄;產生的 Java 類別位於 WEB-INF/factory/generated/genjava
內容檔
若為「共用團隊專案」,請勿在來源控制中,儲存專案最上層的內容檔 (.bowstreet.classpath.project)。 這些是使用者及系統專用的檔案。
從來源控制中排除的檔案

IBM WebSphere Portlet Factory 提供從來源控制中排除的預設檔案選擇。

Eclipse 開發環境支援設定資料夾及檔案,可以依預設從來源控制中排除。 WebSphere Portlet Factory 藉由提供要從來源控制中排除的資料夾及檔案清單,與 Eclipse 的標準團隊功能整合。 若要查看清單,在 Eclipse 中按一下視窗 > 喜好設定 > 團隊 > 忽略的資源,並記下以 */WebContent 開頭的項目。 依預設,這些項目由 WebSphere Portlet Factory 所提供。

使用「喜好設定」對話框中的控制項,即可根據您的專案需求修改清單。 此外,您還可以透過您使用的來源控制指令,置換清單中的任何項目。

Web 應用程式模型執行

此文件說明 WebApp 物件在 IBM WebSphere Portlet Factory 系統中的結構及行為。

本文件中的資訊適用於:

  • 開發人員建立 Webapp 模型:不論建立模型時使用哪個建置器,產生的應用程式都會遵循 WebApp 結構及執行行為。 建立模型的開發人員可以使用 WebSphere Portlet Factory Designer 中的 WebApp 視圖,檢視針對「模型」產生的 WebApp。
  • 要瞭解模型產生及執行程序的其他人。

WebApp 是針對 WebApp 參數式模型而產生的可執行結果。 WebApp 元素是產生應用程式時,建置器可以使用的基本建置區塊。

WebApp 代表所有或部分 J2EE Web 應用程式,並包括:

  • 頁面 (JSP)
  • 狀態資料 (初始的、XML 及 Java 物件)
  • 商業物件及其他支援物件的鏈結
  • 執行邏輯及產生的 Java 程式碼
  • 事件處理
  • 其他 WebSphere Portlet Factory WebApps 的鏈結
註: 由於建置器使用這些基本建置區塊的方法是無限制的,因此 WebApp 建置器數遠遠多於 WebApp 元素的類型數。

WebApp 執行

本資訊說明 WebApp 執行時期環境程序,以及將由 WebApp 應用程式開發人員使用的 API。

開發人員的主要 API 進入點是 WebAppAccess 介面,其中包含執行 WebApp 應用程式的所有實例特定資訊。 次要 API 是 WebApp 介面,該介面較為靜態,並包含執行中或非執行中 WebApp 應用程式的相關結構資訊。

瞭解 WebApp 執行路徑及 WebApp 執行時間動作很重要。

WebApp 執行時間動作

在 WebApp 的執行過程內,會處理兩種類型的動作。

這兩個動作是頁面及方法。 執行 WebApp 時,會完成執行產生的這些動作。
方法
所有非頁面執行碼 (如「方法」、「動作清單/動作」及「方法呼叫」),都會轉換為 Java 原始碼。 編譯該程式碼,針對 WebApp 的每個唯一變式產生單一 Java 類別。 在執行時期會實例化類別,然後使用 WebAppAccess callMethod API 來執行此類別。 執行所產生之 Java 方法的同一個方法動作,也會用來呼叫鏈結的 Java 物件方法。
頁面
所有「頁面」執行都會透過頁面動作進行,它將會偵測頁面類型,並將處理程序傳遞至正確的頁面處理器。 目前,有兩種類型的頁面處理器。 一個是 JSP 頁面處理器,它是由主機伺服器來執行,第二個是靜態頁面處理器,它不會進行實際的處理,但是會直接將頁面傳送回用戶端。
動作清單
動作清單是存放動作項目的清單,其中包括方法呼叫、指定作業、處理頁面呼叫及返回陳述式等。 「動作清單」會轉換為 Java 方法,因此,就執行時期而言,會將它們視為上面說明的任何其他方法。

WebApp 執行路徑

若要較深入地瞭解 WebApp 執行時期環境,最好能夠瞭解個別要求的執行路徑。

給定要求端第一次要求執行 WebApp 的高階步驟如下。
  1. 剖析要求,以決定要執行的「WebApp 模型」,以及 WebApp 中選擇性指定的動作 (如果沒有指定,依預設是名稱為 main 的動作)。
  2. 使用 InstanceDataStorage (實例資料的抽象儲存,依預設是階段作業),檢查要求端是否已經在執行此 WebApp 的實例。 因為這是第一個要求,所以不會有實例資料。
  3. 因為沒有實例,所以從快取擷取 WebApp,或使用適當的設定檔資料來產生 WebApp。
  4. 然後,使用 InstanceDataStorage 來儲存後續要求的實例資料。 實例資料包含狀態資料,例如「變數」及「鏈結的模型」。
  5. 建立新的 WebAppAccess 物件,以及 WebApp 之變數及鏈結的模型的實例特定副本。
  6. 接著進行一些權限檢查,以決定是否能以外部要求,而不是使用 WebApp 至 WebApp 要求來執行 WebApp。
  7. 然後,Servlet 會處理 WebApp 的動作。 例如,如果要求 WebApp 的 "main" 方法,就會呼叫該方法,而其又會呼叫其他動作 (例如,另一個方法或頁面)。
  8. 然後,會將動作的結果傳回要求端。

對上面進行的 WebApp 要求,要求取得相同要求端之後續要求的高階步驟如下。

  1. 剖析要求,以決定要執行的 WebApp,以及 WebApp 中選擇性指定的動作 (如果沒有指定,依預設是名稱為 main 的動作)。
  2. 使用 InstanceDataStorage 來檢查要求端是否已經在執行此 WebApp 的實例。 因為這是第二個要求,所以會有實例資料。
  3. 使用從 InstanceDataStorage 擷取的實例資料,建立新的 WebAppAccess 物件。
  4. 隨後進行一些權限檢查,以決定是否可以透過外部要求執行 WebApp。
  5. 然後,Servlet 會處理 WebApp 的動作。 例如,如果要求 WebApp 的 "main" 方法,就會呼叫該方法,而其又會呼叫其他動作 (例如,另一個方法或頁面)。
  6. 然後,會將動作的結果傳回要求端。

WebAppAccess

WebAppAccess 是執行中應用程式的程式設計師介面。

透過此介面,程式設計師可以存取並修改所有實例特定的執行時期元件,例如變數、鏈結的「模型」及鏈結的 Java 物件。 無法修改 (唯讀) 的元件為頁面、方法、系統事件接聽器及錯誤處理常式,您可以透過 WebApp 介面來存取它們。 開發人員可以在方法、LJO 及 JSP 頁面中取得 WebAppAccess 介面 API。 您可以透過 WebAppAccess API 存取 WebApps、變數及鏈結的模型。

使用 Java 和 WebAppAccess 物件

IBM WebSphere Portlet Factory 中, 您可以使用多種方法,將 Java 程式碼併入應用程式。

  • 方法建置器
  • 鏈結的 Java 物件建置器
  • ${Java/...} 間接參照

您可以使用 WebAppAccess 物件,來設計 WebSphere Portlet Factory 執行時期和 API 的程式。 如需在 WebSphere Portlet Factory 中使用 Java 的相關資訊,請參閱產品 Wiki 中的文章在 Web 應用程式中使用 Java

具有 WebApp 的 WebAppAcess

WebApp 是產生程序的結果。 如果對您建立的模型進行設定檔作業,則會依需要建立唯一版本的 WebApp。 WebApp 包含執行應用程式所需的所有結構資料。

在執行時間 WebApp 是唯讀的,因為可以跨多個 WebAppAccess 實例共用它。 若送入的要求需要具有相同設定檔需求的 WebApp,共用 WebApp 能讓我們不必重新產生新的 WebApp。

WebApp 上內含的元件為頁面、方法、動作清單、變數、鏈結的 Java 物件、鏈結的模型、系統事件接聽器及錯誤處理常式。

第一次實例化 WebAppAccess 時,會將 WebApp 的執行時期可更改的元件從 WebApp 複製到 WebAppAccess 物件。 這些元件是變數、鏈結的模型及鏈結的 Java 物件。 這可讓 WebAppAccess 修改那些項目,而不需要毀損共用的 WebApp 物件。

註: 會將鏈結的 Java 物件當作物件類型儲存在變數內。
WebAppAccess 具有 WebApp 的參照,並且可以使用 getWebApp 方法來擷取它。
WebApp webApp = webAppAccess.getWebApp();

鏈結的模型

鏈結的模型會提供一個機制,可讓 WebApp 開發人員重複使用模型功能,以及在其他 WebApp 之間共用模型功能。

透過鏈結模型,即可對要求鏈結的模型顯現鏈結目標模型的公用功能 (例如,方法或頁面)。

若要新增鏈結的模型,請使用「鏈結的模型」建置器來指定要鏈結至的模型。 「鏈結的模型」建置器會將具名的位置新增到模型中,其包含正在鏈結的目標模型的相關資訊。 下面的範例顯示正在鏈結至模型 B 的模型 A,將 LM1 作為本端鏈結的模型參照名稱使用。

註: 在實際呼叫模型 B 之前,該模型都不會進行實例化。

建置器的名稱會作為字首名稱使用,並且必須使用它來存取鏈結的模型功能。 例如,若您已新增鏈結的模型,且已在其中指定 LM1 作為建置器名稱,則應該使用「鏈結的模型」建置器名稱、句點 (.) 分隔字元及頁面名稱,來參照該模型中的頁面。

webAppAccess.processPage("LM1.HomePage");

也使用類似的格式,在鏈結的模型上呼叫方法。

String value = webAppAccess.callMethod("LM1.doWork");

鏈結至模型後,您可以建立在階段作業內共用之模型的單一實例,或者也可以指定在階段作業內不共用的鏈結模型。 如果不共用鏈結的模型,則若有多個「鏈結的模型」建置器使用該模型,便會建立多個該模型的實例。

鏈結的模型:非階段作業單態

將鏈結的模型指定為「非階段作業單態」時,會針對給定的要求端階段作業建立此模型的多個實例。

參照相同模型的其他鏈結的模型會取得它們專屬的唯一實例。 在非單態模式中,鏈結的模型不是儲存在要求端階段作業中,而是作為參照,保留在鏈結它們的模型中。 例如,若模型 A 及模型 B 在模型 C 中鏈結,則會針對給定的階段作業建立兩個模型 C 的實例。 在母項模型中鏈結的模型位置會參照每個實例。

因為模型 C 有多個實例,且使用者階段作業中沒有它的參照,則模型 C 頁面中的鏈結需要指回鏈中的最高單態母項模型。 例如,若 HomePage 內含連至模型 doWork 方法的鏈結,則該鏈結會類似於下列內容:

/webengin/A/Action:LM1.doWork

如果我們新增另一個鏈結的模型,且模型 C 目前在模型 D 中鏈結,而您想要模型 D 中的頁面鏈結至它的 main 方法,則鏈結會類似於下列內容:

/webengin/A/Action:LM1.LM2.main

在此範例中,LM2 是新增至模型 C 之鏈結模型的建置器名稱。

鏈結的模型:階段作業單態

將鏈結的模型指定為「階段作業單態」時,只會針對給定的階段作業建立一個此模型的實例。

如果其他鏈結的模型參照相同的模型名稱,則它們可共用此實例。 例如,若模型 A 及模型 B 在模型 C 中鏈結,則只會針對給定的階段作業建立模型 C 的一個實例。

因為模型 C 只有一個實例,且要求端階段作業中具有它的參照,則模型 C 頁面中的鏈結,可以直接指回它本身,來進行內部動作。 例如,若 HomePage 內含連回模型 doWork 方法的鏈結,則該鏈結會類似於下列內容:

/webengin/C/Action:doWork
鏈結之模型的 WebAppAccess

鏈結之模型的 WebAppAccess 可以用來設定或變更與鏈結的模型位置相關聯的實例化模型。

例如,您可以實例化模型,並使用新的模型重新分派鏈結的模型,如下所示:
// create or get a singleton instance of model "C"
WebAppAccess modelC = webAppAccess.getModelInstance("C", null, true);
// Get the linked model slot holder
LinkedModel linkedModel = webAppAccess.getLinkedModel("LM1");
// Now set the instance on the linked model slot
linkedModel.setLinkedModelInstance(modelC);

現在,當進行 LM1 的呼叫時,它們會移至新的模型。 這假設您在換出鏈結的模型時,以包含可能會呼叫之相同方法/頁面的模型來取代它們。

釋放鏈結的模型

在一些情況下,您可能要釋放鏈結之模型的參照,如此 JVM 記憶體回收將收回鏈結的模型使用的記憶體。

下面是釋放鏈結的模型時的一些規則清單。
  • 當階段作業逾時時,將釋放所有鏈結的模型以及母項模型。
  • 當明確釋放母項模型時,會自動釋放非單態的鏈結的模型。
  • 當明確釋放母項模型時,不會自動釋放單態鏈結的模型。 這是由於在階段作業中,單態模型可以在模型之間共用,與母項一起自動釋放它們可能會導致意外的結果。 應用程式開發者可以使用 freeLinkedModel(..) 方法,明確地釋放單態或非單態鏈結的模型 (請參閱 API 一節)。

方法及 LJO 方法呼叫

WebApp 方法及動作清單會轉換為已產生的 Java 類別,它代表所有 WebApp 方法及動作清單。

針對 WebApp 的每個唯一實例,會產生一個 Java 類別。 產生的類別名稱將是 WebApp 名稱加上唯一的字尾,使用它可以識別用來產生 WebApp 的設定檔資料。

WebApp 方法及 LJO 方法的一般規則

  • 所有產生的方法及動作清單方法都會將 WebAppAccess 物件視為第一個引數。
  • 要求透過 WebAppAccess 物件存取 WebApp 的任何 LJO 方法,都必須宣告它的方法,並將 WebAppAccess 作為第一個引數。

呼叫鏈結的 Java 物件方法

如果在 WebApp 方法或其他 LJO 中,您可以使用兩種方式中的其中一種來呼叫 LJO 方法。

您可以使用 WebAppAccess callMethod(..) 方法 (如同您對 WebApp 方法所做的動作),只是在方法名稱中,您必須在模型中指定鏈結的 Java 物件建置器呼叫的名稱。 呼叫 LJO 上之 doWork 方法 (它採用 WebAppAccess 及字串引數) 的範例如下。
webAppAccess.callMethod("MyLJO.doWork", "foo");

在此範例中,doWork 的實際簽章如下所示:

public 
 void doWork(WebAppAccess webAppAccess, String name);

透過 callMethod(..) 呼叫它,會自動將 WebAppAccess 當成第一個引數進行傳遞。

您也可以取得 LJO 的實例,並進行直接呼叫,如下所示:

SampleLJO myLJO = (SampleLJO)webAppAccess.getVariables().getObject("MyLJO");
myLJO.doWork(webAppAccess, "foo");
註: 因為您直接呼叫,所以必須傳入 WebAppAccess 參照。

如果已經指定 LJO 當成已產生之方法類別的基礎類別,則可以直接呼叫該方法,而不需要使用鏈結的 Java 物件建置器名稱作為字首 (不使用 "MyLJO.")。

webAppAccess.callMethod("doWork", "foo");

在鏈結的模型上呼叫 LJO 方法

如果是在 WebApp 方法或 LJO 中,您可以使用 WebAppAccess callMethod(..) 方法 (如同您對 WebApp 方法所做的動作) 來呼叫鏈結的模型 LJO 方法,只是在方法名稱中,您必須指定鏈結的模型建置器呼叫名稱,再加上鏈結的模型中 LJO 建置器呼叫名稱,以及 LJO 上的方法名稱。

呼叫 doWork 方法 (它採用 WebAppAccess 及鏈結的模型中之 LJO 上的字串引數) 的範例如下。
webAppAccess.callMethod("MyLinkedModel.MyLJO.doWork", "foo");

在此範例中,doWork 的實際簽章如下所示:

public void doWork(WebAppAccess webAppAccess, String name);

透過 callMethod(..) 呼叫它,會自動將 WebAppAccess 當成第一個引數進行傳遞。

您也可以取得「鏈結的模型」的實例,並使用「鏈結的模型」WebAppAccess 上的 callMethod(..),如下所示:

WebAppAccess linkedWebAppAccess = webAppAccess.getLinkedModel("MyLinkedModel");
linkedWebAppAccess.callMethod("MyLJO.doWork", "foo");

或者,您也可以直接移至 LJO 實例並進行呼叫。

WebAppAccess linkedWebAppAccess = webAppAccess.getLinkedModel("MyLinkedModel");
SampleLJO myLJO = (SampleLJO)linkedWebAppAccess.getVariables().getObject("MyLJO");
myLJO.doWork(linkedWebAppAccess, "foo");
註: 在此狀況下,您必須從鏈結的模型傳入正確的 WebAppAccess。 在此情況下,它是 linkedWebAppAccess。

呼叫 WebApp 方法

從 Java 程式碼呼叫方法可以有兩種方式,視您進行呼叫的位置而定。

如果您在 LJO 中,則必須使用 WebAppAccess callMethod(..) 方法的 LJO。 呼叫採用字串引數的 doWork 方法之範例如下:
webAppAccess.callMethod("doWork", "foo");
在此範例中,doWork 的實際簽章如下所示:
public void doWork(WebAppAccess webAppAccess, String name);

透過 callMethod(..) 方法發出呼叫,會自動將 WebAppAccess 當作第一個引數進行傳遞。

如果在 WebApp 方法中,由於 WebApp 的所有方法都會編譯為單一 Java 類別,因此您可以直接呼叫。 呼叫採用 WebAppAccess 及「字串」引數的 doWork 方法之範例如下:
doWork(webAppAccess, "foo");
註: 當直接呼叫時,您必須自己傳入 WebAppAccess 及其他引數。 不過,在此狀況下,您仍然可以使用 callMethod(..) 方法。

在鏈結的模型上呼叫 WebApp 方法

如果在 WebApp 方法或 LJO 中,您可以使用 WebAppAccess callMethod(..) 方法 (如同您對 WebApp 方法所做的動作) 來呼叫鏈結的模型方法,只是在方法名稱中,您必須指定鏈結的模型建置器呼叫名稱及方法名稱。

呼叫 doWork 方法 (它採用 WebAppAccess 及鏈結的模型上的字串引數) 的範例如下:
webAppAccess.callMethod("MyLinkedModel.doWork", "foo");

在此範例中,doWork 的實際簽章如下所示:

public void doWork(WebAppAccess webAppAccess, String name);

透過 callMethod(..) 呼叫它,會自動將 WebAppAccess 當成第一個引數進行傳遞。

概觀:在模型間進行通訊

如果 IBM WebSphere Portlet Factory 應用程式利用多個模型來進行運作,您可能需要將資料從一個模型傳送至另一個模型。

在模型間進行通訊有多種方式。

使用事件
可以在一個模型中發動事件,而在另一個模型中對其進行處理。 WebSphere Portlet Factory 也提供傳送資料功能。
使用階段作業
您可以將資訊儲存在階段作業物件中。 同一階段作業所要求的任何模型都具有此資訊的存取權。

在模型間的通訊中使用事件

事件為具名的播送,這些播送會送達接聽事件的階段作業 (例如,針對相同使用者) 中的任何模型。 有兩種類型的事件:一般事件及小組件事件。

事件可以宣告為包含引數,並且會在發動事件時指定引數值。 若為一般事件,給定事件的所有使用者,都應該要以相同的方式進行宣告。

若為一般事件,將「事件宣告」建置器置於單一模型中,然後將該模型匯入要發動或處理事件的任何其他模型中。 事件是跨階段作業的具名播送。 在發動事件時,相同使用者正在執行的其他任何模型都可以捕捉到該事件。

當您直接或透過「匯入的模型」建置器將「事件宣告」建置器併入模型中時,建置器會在您的 WebApp 中建立一個稱為 fireXxx 的方法,其中 Xxx 是事件名稱。 此方法具有正確的引數 (如在「事件宣告」建置器中所定義的引數)。

若要處理事件,請建立與「事件宣告」具有相同引數的方法,然後建立一個「事件處理常式」建置器,告知系統將該具名事件遞送至該方法。 如果已建立模型的實例,則該模型就會接聽發動該事件的任何模型 (包括您自身的模型在內)。 當您知道有某個模型 (或模型類型),但您沒有該模型的直接鏈結時,事件是一種進行通訊的理想技術。

若為小組件事件,請使用「小組件事件」建置器輸入來指定小組件是發動、處理還是同時發動並處理事件。 指定如何在相同的對話框中處理事件。

關於在模型間的通訊中使用階段作業

您可以將階段作業資料儲存在簡式對映表中,因此兩個不同的模型只需使用相同的索引鍵,就可以共用相同的物件。

模型可以使用 WebAppAccess 物件上的 getWebAppData 方法,儲存階段作業中的資料。 資料會儲存在簡式對映表中,因此兩個不同的模型只需使用相同的索引鍵,就可以共用相同的物件。

註: IBM WebSphere Portlet Factory 的預設行為是將此資料直接儲存在 J2EE 階段作業物件中,且大多數 J2EE 平台都建議將此儲存體保持在最小值。 然而,此資料的實際儲存體是透過外掛介面,因此,您可以實際上將資料儲存在持續性 Java™ Bean 中。 在一種技術中有效的應用程式,在使用另一種技術時,也會自動有效。

關於在模型間的通訊中使用鏈結的模型

使用所鏈結模型中的方法,可以將資料從主要模型傳送至鏈結的模型,或者從鏈結的模型擷取資料。

當一個模型使用「鏈結的模型」建置器參照另一個模型時,第一個模型就可以使用與其存取自身方法相同的方式,來存取鏈結目標模型的公用方法。

註: 其他的建置器也會在 WebApp 中建立鏈結的模型 (例如「模型儲存器」建置器)。 這些其他建置器具有相同的效果。

主要模型會在「動作清單」或「方法」中呼叫公用方法,方法是將其指定為 <鏈結的模型名稱>.<公用方法名稱>

您可以使用鏈結的模型中的方法,將資料從主要模型傳送至鏈結的模型,或者從鏈結的模型擷取資料。

IBM WebSphere Portlet Factory 的協助工具

IBM 致力於讓每個人(不論其年齡或能力)都可以使用產品。

此產品使用標準的 Microsoft® Windows® 導覽鍵。

如需 IBM 及協助工具的相關資訊,請參閱 IBM 協助工具中心

產生之 Web 應用程式的可存取性

若要有可存取的 Web 應用程式,每一個頁面的開頭都必須併入用來參照已發佈之文件類型宣告 (DTD) 的 DTD。 WebSphere Portlet Factory Designer 不會將 DTD 新增到頁面,因為它不知道您的應用程式遵循哪一個 DTD (如果有的話)。 若要取得由 WebSphere Portlet Factory Designer 產生的可存取 Web 應用程式,請將下列格式的 DTD 新增至應用程式頁面。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
DTD 應參照支援的文件類型宣告。

IBM WebSphere Portlet Factory Designer 的協助工具特性

協助工具特性可協助身體殘障 (如行動受限或視力不佳) 的使用者順利使用資訊技術產品。

WebSphere Portlet Factory Designer 支援下列協助工具特性。
  • 僅鍵盤作業
  • 螢幕閱讀器常用的介面

高反差設定

如果您想要 Windows 使用為易於閱讀而設計的顏色及字型,請使用「高反差」模式設定。 已經使用 Microsoft Windows XP「高反差」模式中的 1152 x 864 解析度測試過 Eclipse 的「高反差」。 您可以使用「高反差」模式已測試的解析度或更高解析度。

若要使用「高反差」模式,請開啟「Windows 控制台」,按兩下協助工具選項以開啟「協助工具選項」對話框,按一下顯示標籤,然後選取使用高反差

在高對比模式中,使用索引鍵在多行編輯欄位中(例如,在「方法」建置器的方法主體輸入中)進行導覽時,可能會遇到問題。 如果導覽至方法主體輸入,您可以使用箭頭進行移動以閱讀所有文字。 不過,使用鍵盤指令不會移動水平和垂直捲軸,以便所有文字均可見。 您會有下列選項。
  • Alt+Ctrl+上移鍵Alt+Ctrl+下移鍵,以移動多行編輯欄位的內部捲軸。
  • 請執行下列其中一項動作,以避免此問題。
    • Alt+-,以調整編輯區的大小。
    • 在個別視窗中顯示建置器編輯器,並按 Alt+空格鍵以調整視窗大小,從而顯現所有文字。

按鍵協助

Eclipse 提供一組可以在 Eclipse 工作台中使用的按鍵連結。 Eclipse 將按鍵連結定義為呼叫指令之組合鍵與指令的關聯。 若要檢視在 WebSphere Portlet Factory Designer 運作時可使用的 Eclipse 按鍵連結清單,請按一下說明 > 按鍵協助或按 Ctrl+Shift+L。 如需 Eclipse 按鍵連結的詳細資訊,請參閱「說明」中的工作台使用手冊

鍵盤導覽

此產品使用標準 Windows 導覽鍵。 如需 Eclipse 中協助工具特性及鍵盤導覽的相關資訊,請參閱「說明」中的工作台使用手冊

功能表

您可以使用鍵盤導覽來存取主功能表,如表 1中所示。
表 1. 功能表存取鍵盤組合及相關的動作
鍵盤組合 動作
F10 存取功能表列的功能表
右移鍵 在功能表列向右導覽
左移鍵 在功能表列向左導覽
下移鍵 在所選功能表中向下導覽功能表選項
上移鍵 在所選功能表中向上導覽功能表選項
Shift+F10 開啟現行視圖的快速功能表
Ctrl+F10 開啟現行視圖的下拉功能表
Alt+助記鍵 開啟功能表列中助記鍵的對應功能表及功能表選項

視圖及編輯器

您可以使用鍵盤導覽,在所有視圖及編輯器之間導覽。 當您在視圖及編輯器之間導覽時, WebSphere Portlet Factory Designer 會記住選取的最後一個項目,所以必要時您可以在兩個項目之間快速導覽。 例如,如果焦點位於「專案瀏覽器」中且已開啟建置器呼叫編輯器,則按 Ctrl+F7,可以啟動檢視功能表並從檢視功能表選取編輯器。 畫面焦點停駐在建置器呼叫編輯器後,可使用 Ctrl+F7 在「專案瀏覽器」及建置器呼叫編輯器之間來回切換。

表 2. 視圖及編輯器導覽鍵盤組合
鍵盤組合 動作
Ctrl+F6 啟動編輯器功能表並在開啟的編輯器之間導覽
Ctrl+F7 啟動檢視功能表並在開啟的視圖之間導覽
Ctrl+E 從編輯器啟動編輯器下拉功能表,以在開啟的編輯器之間導覽
Ctrl+Page Up、Ctrl+Page Down 在視景的模型編輯區中開啟的標籤之間導覽。

標籤可以位於「應用程式樹狀結構」畫面上方的列中或位於建置器呼叫編輯器下方的列中。 組合鍵可在焦點停駐畫面的列中使用。

Alt+(-) 啟動檢視功能表,以移動視圖標籤、調整視圖大小、存取快速視圖、分離視圖、最小化及最大化視圖
Alt+Page Up、Alt+Page Down 上下移動建置器呼叫編輯器垂直捲軸。
Ctrl+Alt+Tab 從左側的表格移出至右側的對應欄位。
Shift+Alt+Page Up、Shift+Alt+Page Down 左右移動建置器呼叫編輯器水平捲軸。
下移鍵 向下導覽功能表選項
上移鍵 向上導覽功能表選項
右移鍵 導覽至子功能表選項
左移鍵 從子功能表導覽至功能表選項

建置器呼叫編輯器易讀性

如果您發現建置器呼叫編輯器難以閱讀,則可以嘗試使用更大的字型或較低的螢幕解析度。 如果這些動作都不足以提高易讀性,則可以在其自己的視窗中執行建置器呼叫編輯器。

建置器呼叫編輯器資料輸入

您可以使用鍵盤導覽來選取表格中的焦點。 不過,在建置器呼叫編輯器的表格中進行導覽及編輯與編輯一般表格資料不同。 在建置器呼叫編輯器中,選取表格資料格中的某個選項可在表格外部進行新輸入。 一般的使用情況是離開具有焦點的資料格,並將焦點置於第一個新輸入中。 為了將焦點從表格的資料格變更為第一個新輸入,建置器呼叫編輯器支援 Ctrl+Tab 鍵組合。 這樣就無需多次按 Tab 鍵來導覽到表格尾端,並在最後一列中按下移鍵來離開表格而導覽至新輸入。 此組合會將焦點變更為與目前擁有焦點之資料格中所選選項相關的第一個輸入。

表 3. 建置器呼叫編輯器表格導覽鍵盤組合
鍵盤組合 動作
右移鍵 如果現行焦點位於資料格尾端,則移至下一個資料格的開頭
左移鍵 如果現行焦點位於資料格開頭,則移至前一個資料格的尾端
上移鍵 如果現行焦點位於資料格的第一行,則移至上方的資料格
上移鍵 如果現行焦點位於表格的第一列,則離開表格
下移鍵 如果現行焦點位於資料格的最後一行,則移至下方的資料格
下移鍵 如果現行焦點位於表格的最後一列,則離開表格
Tab 移至下一個資料格
Tab 如果焦點位於表格的最後一個資料格,則將新的一列附加至表格並移至該資料格
Ctrl+Tab 移出表格
Shift+Tab 移至前一個資料格 (如果焦點位於第一個資料格,則無導覽)

使用鍵盤指令導覽資訊中心

您可以使用鍵盤指令,透過按鍵組合來導覽說明系統。

  • 若要從說明瀏覽器的窗格內部,跳至下一個鏈結、按鈕或主題節點,請按一下 Tab 鍵。
  • 若要展開及收合樹狀結構中的節點,請按一下 Ctrl+向右Ctrl+向左箭頭。
  • 若要移動到下一主題節點,請按向下箭頭或 Tab 鍵。
  • 若要移動到前一主題節點,請按向上箭頭或 Shift+Tab 鍵。
  • 若要向上捲動到頂端或向下捲動到底端,請按 HomeEnd 鍵。
  • 若要回上頁,請按 Alt+箭頭;若要到下頁,請按 Alt+箭頭。
  • 若要跳至下一個窗格,請按 Ctrl+Tab 鍵。
  • 若要移動到前一個窗格,請按 Shift+Ctrl+Tab 鍵。
  • 若要列印作用中窗格,請按 Ctrl+P 鍵。

聯絡 IBM 支援中心

「IBM 支援中心」提供 IBM WebSphere Portlet Factory 產品問題報告的協助。

若要聯絡「IBM 支援中心」,您的公司必須具有作用中的 IBM 軟體維護合約,且您必須取得授權,才可以提交問題給 IBM。 如需可用維護合約類型的相關資訊,請參閱下列位置中軟體支援手冊"支援資料夾"

http://techsupport.services.ibm.com/guides/services.html
請完成下列步驟,以聯絡「IBM 支援中心」並向其報告問題。
  1. 定義問題,收集背景資訊,並判斷問題的嚴重性。

    如需相關說明,請參閱軟體支援手冊"取得 IBM 支援"

    若要存取產品 Wiki 及論壇,在 Eclipse 中,當在 WebSphere Portlet Factory 視景中執行時,按一下說明 > 存取 IBM WebSphere Portlet Factory 資源,然後按一下適當的選擇。

  2. 收集診斷資訊。
  3. 造訪 WebSphere Portlet Factory support site
    您可以在其中找到多個資源,可以協助以下事項。
    • 最新疑難排解資訊清單
    • 論壇及社群的鏈結
    • 支援資訊搜尋工具
  4. 如果無法解決您的問題,請以下列其中一個方法,提交您的問題給「IBM 支援中心」。
    • 使用 IBM Support Assistant (ISA)。
    • 在支援網站上,按一下支援 > SR,以使用 Electronic IBM Service Request 工具。

    • 撥打電話給支援代表。

      如需所在國的電話號碼,請跳至軟體支援手冊中的聯絡人

如果您提交的問題是軟體問題或文件遺漏或不正確,「IBM 支援中心」會建立「授權程式分析報告 (APAR)」。 APAR 會詳細說明問題。 可能的話,「IBM 軟體支援中心」會提供暫行解決方法,您可以在解決 APAR 並遞送修正程式之前,先實作該暫行解決方法。 IBM 每天都會在「IBM 支援中心」網站上發佈已解決的 APAR,以讓遇到相同問題的其他使用者可以使用相同的解決方案,獲得協助。

改進資訊中心搜尋

您可能需要執行作業來改進資訊中心中的搜尋品質。

如果您安裝或升級 IBM WebSphere Portlet Factory 至現有的 Eclipse,可能需要移除快取的搜尋索引,以便在搜尋說明時可以存取新內容。
  1. 關閉 Eclipse。
  2. 跳至 Eclipse 位置,然後尋找下列資料夾。
    /configuration/org.eclipse.help.base
  3. 刪除該資料夾的內容。
下一次在說明中啟動搜尋時,會建置新的搜尋索引。

啟動 IBM WebSphere Portlet Factory Designer

啟動 WebSphere Portlet Factory Designer 的程序與啟動 Windows 及 Linux 系統的程序不同。

  • 如果您正在使用 Windows 系統,請遵循下列步驟。
    1. 如果位於 Microsoft Vista 系統上,則請以「管理者」帳戶權限執行。

      執行 WebSphere Portlet Factory Designer 的使用者必須具有「管理者」權限。

    2. 按一下開始 > 程式集 > IBM WebSphere > Portlet Factory > Designer

      這會自動啟動 Eclipse IDE,並載入 WebSphere Portlet Factory Designer 外掛程式。

      如果您在現有的 Eclipse 型環境中安裝 WebSphere Portlet Factory Designer 外掛程式,則當您在安裝 WebSphere Portlet Factory Designer 之後啟動 IDE 時,畫面上會顯示「軟體更新」對話框。

    3. 選擇性的: 如果出現「軟體更新」對話框,請執行下列其中一項:
      • 若要執行軟體更新,請選取及最上層顯示的勾選框。

        這會將「 WebSphere Portlet Factory Designer 歡迎使用」頁面新增至環境。

      • 選取,使「 WebSphere Portlet Factory Designer 歡迎使用」頁面不要出現在可用的「歡迎使用」頁面清單中。
  • 如果您正在使用 Linux 系統,請遵循下列步驟。
    1. 切換至在其中安裝 WebSphere Portlet Factory Designer 的目錄。
    2. 從該位置下的 eclipse 目錄,執行 eclipse 執行檔。

      此指令可以啟動已載入 WebSphere Portlet Factory Designer 外掛程式的 Eclipse IDE。

安裝 IBM WebSphere Portlet Factory

安裝產品涉及執行程式及回答一些問題。

安裝完成後,您可以設定可在開發 Web 應用程式時使用的各種延伸規格。

WebSphere Portlet Factory 產品安裝手冊

1. 安裝概觀

此手冊適用於 WebSphere Portlet Factory,但這項安裝作業可能會包含安裝其他產品。

1.1 安裝步驟

安裝包括下列步驟:
步驟 1 - 安裝 WebSphere Portlet Factory Designer
執行安裝程式,以安裝 WebSphere Portlet Factory Designer。
步驟 2 - 建立及部署 Web 應用程式專案
使用提供的指導教學,建立要部署至應用程式伺服器或 WebSphere Portal 伺服器的 Web 應用程式專案。

1.2 前置安裝資訊

預設安裝選項包含支援的 Eclipse 版本。或者,可將 WebSphere Portlet Factory 安裝至下列其中一個支援版本的 IDE。

  • IBM Rational Application Developer
  • IBM Rational Software Architect
  • IBM Rational Web Developer
  • Eclipse (僅限 Eclipse SDK 版本)

安裝之前,您必須安裝 IBM WebSphere Portal 或其中一部支援的應用程式伺服器。 如需應用程式伺服器版本及修補程式層次的相關資訊,請參閱產品版本注意事項主題中詳細的系統需求小節。

註: 若要在使用英文以外語言的系統上,將 WebSphere Portlet Factory 安裝至 Rational IDE 中,您必須先編輯 installer.properties 檔,然後修改開始於 PRODUCTREG_PATH= 的字行上所指定的路徑,以實際指定您系統上的路徑。

1.3 現有的 WebSphere Portlet Factory 安裝

如果您已安裝 WebSphere Portlet Factory,請勿在相同的目錄中,在舊版上安裝新版本。

如果您要使用相同的目錄來進行新的安裝,請遵循下列步驟。

  1. 考慮備份現有的安裝。
  2. 備份任何專用檔,例如,SAP 程式庫。
  3. 使用第 4 節中詳細記載的處理程序來移除舊版本。
  4. 使用第 2 節中詳細記載的處理程序來安裝新版本。
  5. 將所有已備份專用檔移至新安裝的正確目錄中。

2. 安裝 WebSphere Portlet Factory

首先,遵循下列其中一節中所述的步驟,在想要的平台上安裝 WebSphere Portlet Factory

然後,您可以遵循WebSphere Portlet Factory 產品安裝手冊中所述的步驟,開始瀏覽產品。

步驟 1 - 在 Windows 上安裝 WebSphere Portlet Factory

  1. 如果位於 Microsoft Vista 系統上,則請以「管理者」帳戶權限執行。

    若要在 MicrosoftVista 系統上執行 WebSphere Portlet Factory Designer,您必須將 WebSphere Portlet Factory 安裝成以「管理者」帳戶權限執行,而執行應用程式的使用者必須具有「管理者」權限。

  2. 啟動安裝執行檔 (Factory.exe)。
  3. 出現提示時,選取使用本產品時所偏好的語言,然後按一下確定
  4. 簡介頁面會顯示著作權及其他資訊。 若要繼續安裝,請按下一步
  5. 閱讀授權合約,並選取我接受授權合約的條款以繼續安裝,然後按下一步
    註: 如果您不接受授權條款,系統會提示您退出安裝。
  6. 您可以選擇下列其中一個選項。
    • 標準安裝提供快速入門所需的所有內容

      選取此選項,可以在您的 WebSphere Portlet Factory 安裝中,併入 Eclipse 及 IBM WebSphere Application Server Community Edition。 如果選取此選項,則安裝程式會安裝 Eclipse、 WebSphere Portlet Factory Designer 及 WebSphere Application Server Community Edition (WAS CE)。 如果您選擇此選項,請跳至步驟 9。

    • 自訂安裝可讓您選擇特性及安裝選項

      如果您需要詳細指定軟體選項及其安裝位置,請選取此選項。

      選取安裝目錄欄位中,指定要安裝 WebSphere Portlet Factory 檔的位置,然後按下一步

  7. 在「指定安裝項目」畫面中,選取要與 WebSphere Portlet Factory Designer 搭配使用的整合開發環境 (IDE)。

    您可以選擇下列其中一個選項。

    • 使用 Eclipse 的新副本安裝設計器
      如果沒有 IDE,請選取這個選項。 如果選取此選項,則安裝程式會安裝 Eclipse 及 WebSphere Portlet Factory Designer。
      註: 如果您選取此選項,並選取包含現有 Eclipse 安裝的目錄,則畫面上會顯示一則警告訊息。 請選擇不同的目錄以繼續安裝。
    • 安裝至現有的 IBM Rational Application Developer*

      如果想要使用已安裝的「Rational 開發環境」,請選取此選項。 這包括 Rational Application Developer、Rational Software Architect 及 Rational Web Developer。安裝程式會新增至 WebSphere Portlet Factory 特有 Rational Development Environment 功能表項目的現行版本。

    • 安裝至現有的 Eclipse

      選取此選項可以使用已安裝的 Eclipse 型 IDE 版本。 安裝程式會新增至 WebSphere Portlet Factory Designer 特有 Eclipse IDE 功能表項目的現行版本。

  8. 在「指定 IDE」畫面中,指定 IDE 位置並按下一步

    如果需要瀏覽位置,請按一下選擇

  9. 請按一下將 WAS CE 安裝為開發測試伺服器,並在想要安裝 WebSphere Application Server CE 時選擇安裝位置。

    (僅限在 Windows 系統上)即會顯示安裝 WebSphere Application Server Community Edition (WAS CE) 的選項。WebSphere Application Server CE 是一種以 Apache Geronimo 為基礎的開放程式碼 Java 2 Platform Enterprise Edition (J2EE) 應用程式伺服器。 您可以使用 WebSphere Application Server CE 快速並輕鬆地開發及測試應用程式。

    註: WebSphere Application Server Community Edition 可讓您快速並輕鬆地開發及測試應用程式。 最佳實務是使用與目標正式作業部署平台相符的本端開發環境。 (例如,如果最終要在正式作業中將應用程式部署至 IBM WebSphere Portal,則您應該將 IBM WebSphere Portal 用作本端開發環境)。

    依預設,WebSphere Application Server CE 會隨程式集 > IBM WebSphere > Application Server Community Edition 的捷徑一起安裝。 預設使用者名稱及密碼是:systemmanager

  10. 檢視「安裝之前摘要」畫面,如果所有資訊都正確,請按一下安裝。 畫面上會顯示「安裝進度」畫面,而在安裝完成之後,會顯示「完成安裝」畫面。
  11. 按一下完成,以關閉 Factory 安裝程式。

    瀏覽器會開啟及顯示包含「後續步驟」相關資訊的「歡迎使用」頁面。 安裝順利完成時,會在安裝位置 (例如,C:\Program Files\IBM\WebSphere Portlet Factory) 中建立安裝日誌。

  12. 如果安裝至現有的 Eclipse 型 WebSphere Portlet Factory Designer 安裝,則在舊版 WebSphere Portlet Factory 上進行安裝時,必須升級 WebSphere Portlet Factory Designer 外掛程式。

    如需升級外掛程式所需步驟的相關資訊,請參閱「附錄 A」。

步驟 1 - 在 Linux 上安裝 WebSphere Portlet Factory

安裝 WebSphere Portlet Factory 之前,您應安裝:

  • 應用程式伺服器,例如 Tomcat、WebSphere Application Server CE 或 IBM WebSphere Portal
  • Eclipse(還有 Web 工具)或 Rational Application Developer。 請檢查 WebSphere Portlet Factory 版本注意事項主題,以取得說明支援的 Eclipse 版本的詳細系統需求。

若要在 Linux 上將 WebSphere Portlet Factory 安裝至現有的 Rational Application Developer 或 Rational Software Architect 安裝中,請遵循WebSphere Portlet Factory 產品安裝手冊中所述的程序。

  1. 如果您正在部署至 WebSphere Portal,請建立正確的許可權。 執行下列步驟。
    1. 建立使用者的群組,例如,wpfDev

      此群組將會具有對 WebSphere 目錄的寫入權。

    2. WebSphere Application Server 在執行中時,開啟管理主控台,並導覽至:應用程式伺服器 > WebSphere_Portal > 程序執行。 將 umask 值變更為 002。 將 'run as group'' 變更為 wpfDev。 針對 server1 執行相同的步驟。

      這可讓您變更 WebSphere Portal 伺服器的檔案許可權。現在,WebSphere Portal 伺服器所寫入的任何檔案,都將具有針對 WebSphere Portal 使用者及 WebSphere Portal 使用者所屬群組的讀取/寫入執行權限。

    3. 停止 WebSphere Portal Server。
    4. 讓您自己成為新建立群組的成員 (在此範例中為 wpfDev)。
    5. 從指令行,執行下列指令作為根目錄:
      chgrp -R wpfDev <WP_INSTALL_DIR>/AppServer/ 
      chgrp -R wpfDev <WP_INSTALL_DIR>/PortalServer/  
      如果目錄不可由群組寫入,則執行下列指令:
      chmod -R g+w <WP_INSTALL_DIR>/AppServer/ 
      chmod -R g+w <WP_INSTALL_DIR>/PortalServer/

      這樣容許在部署 WAR 檔之後,對那些資料夾的寫入權。

    6. 重新啟動 WebSphere Portal Server。
  2. 啟動安裝程式:./Factory.bin

    安裝程式會檢查空間及其他先決要件,並顯示第一個畫面。

  3. 出現提示時,選取使用本產品時所偏好的語言。 然後按一下確定
  4. 簡介頁面會顯示著作權及其他資訊。 若要繼續安裝,請按下一步
  5. 閱讀授權合約,並選取我接受授權合約的條款以繼續安裝,然後按下一步
    註: 如果您不接受授權條款,系統會提示您退出安裝。
  6. 在「選擇安裝資料夾」畫面中,指定要安裝 WebSphere Portlet Factory 檔的位置,並按下一步
  7. 指定 Eclipse(含有「Web 工具」)的安裝位置,並按下一步

    如果您是在使用 Rational Application Developer,請選擇預設值,然後按下一步

  8. 檢視「安裝之前摘要」畫面,如果所有資訊都正確,請按一下安裝

    畫面上會顯示「安裝進度」畫面,而在安裝完成之後,會顯示「完成安裝」畫面。

  9. 按一下完成,以關閉 Factory 安裝程式。

    瀏覽器會開啟及顯示包含「後續步驟」相關資訊的「歡迎使用」頁面。 安裝順利完成時,會在安裝位置 (例如,/root/IBM/) 中建立安裝日誌。

在 Linux 系統上將 WebSphere Portlet Factory 安裝至 Rational Application Developer/Rational Software Architect 中

如果您正在 Linux 系統上將 WebSphere Portlet Factory 安裝至現有的 Rational Application Developer 或 Rational Software Architect 安裝中,請執行下列步驟。
  1. 如果您正在部署至 WebSphere Portal,請建立正確的許可權。 執行下列步驟。
    1. 建立使用者的群組,例如,wpfDev

      此群組將會具有對 WebSphere 目錄的寫入權。

    2. WebSphere Application Server 在執行中時,開啟管理主控台,並導覽至:應用程式伺服器 > WebSphere_Portal > 程序執行。 將 umask 值變更為 002。 將 'run as group'' 變更為 wpfDev。 針對 server1 執行相同的步驟。

      這可讓您變更 WebSphere Portal 伺服器的檔案許可權。現在,WebSphere Portal 伺服器所寫入的任何檔案,都將具有針對 WebSphere Portal 使用者及 WebSphere Portal 使用者所屬群組的讀取/寫入執行權限。

    3. 停止 WebSphere Portal Server。
    4. 讓您自己成為新建立群組的成員 (在此範例中為 wpfDev)。
    5. 從指令行,執行下列指令作為根目錄:
      chgrp -R wpfDev <WP_INSTALL_DIR>/AppServer/ 
      chgrp -R wpfDev <WP_INSTALL_DIR>/PortalServer/  
      如果目錄不可由群組寫入,則執行下列指令:
      chmod -R g+w <WP_INSTALL_DIR>/AppServer/ 
      chmod -R g+w <WP_INSTALL_DIR>/PortalServer/

      這樣容許在部署 WAR 檔之後,對那些資料夾的寫入權。

    6. 重新啟動 WebSphere Portal Server。
  2. WebSphere Portlet Factory 使用者的使用者帳戶安裝 WebSphere Portlet Factory

    Eclipse 安裝位置應為使用者帳戶具有寫入權的目錄。 您可能需要選擇 Rational Application Developer 安裝位置以外的位置。 在此位置中,不需要有現有的 Eclipse。

  3. 如果您在上一個步驟中,選擇將 Eclipse 安裝至 Rational Application Developer 安裝位置中,請跳過此步驟。

    執行下列其中一個步驟。

    • 使用具有 Rational Application Developer 安裝位置寫入權的帳戶,將安裝程式所建立的 links 目錄複製到 Rational Application Developer 安裝位置中的正確目錄。

      links 資料夾應該就位於 Rational Application Developer 安裝目錄內。

    • 您也可以將 WebSphere Portlet Factory 鏈結檔直接複製到 Rational Application Developer 內之前已建立的 links 目錄。
  4. 以 root (或 Rational Application Developer 擁有者) 身分,使用 -clean 旗標來啟動 Rational Application Developer,並驗證已安裝 WebSphere Portlet Factory

    使用說明 > 關於來驗證畫面上會顯示 WebSphere Portlet Factory 按鈕。

  5. 如果不是上一個步驟中的使用者,則以 WebSphere Portlet Factory 使用者的身分,使用 -clean 旗標重新啟動 Rational Application Developer,並如上一個步驟進行驗證。
  6. WebSphere Portlet Factory 使用者的身分,正常重新啟動 Rational Application Developer

    此時您不需要使用 -clean 旗標。

從指令行無聲自動安裝

您可以使用下列其中一個儲存在包含安裝執行檔目錄下的預先配置內容檔,執行 WebSphere Portlet Factory 的無聲自動安裝。
config/win_silent_install.properties
config/linux_silent_install.properties
內容檔包含安裝程式的預設回應。如需產生自己的無聲自動安裝回應檔的相關資訊,請參閱WebSphere Portlet Factory 產品安裝手冊
  1. 編輯所需的預先配置內容檔,以符合您的安裝環境。
    註: 若要讓無聲自動安裝正確運作,必須將授權合約內容設為 true,以指示接受授權合約。
    # License agreement. Please see documentation for more info.
    LICENSE_ACCEPTED=true
    依預設,在提供的檔案中,此值會設為 false。
  2. 指出安裝指令中回應檔的位置。
    在 Windows 系統上,開啟指令行,並輸入下列指令。
    c:\Factory.exe -f c:.\config\win_silent_install.properties
    在 Linux 系統上,輸入下列指令。
    sh ./Factory.bin -f ./config/linux_silent_install.properties

    此路徑可以是安裝程式位置的絕對或相對路徑。

  3. 以無聲自動模式執行安裝。
    • 在 Windows 系統上,開啟指令行,並輸入下列指令。
      Factory.exe -i Silent -f config\win_silent_install.properties
    • 在 Linux 系統上,輸入下列指令。
      ./Factory.bin -i Silent -f config/linux_silent_install.properties

安裝程式會將所有內容安裝到目標位置,而不會向使用者顯示任何輸出。當日誌檔建立在安裝目錄的根目錄中時,您會瞭解到安裝已完成。

選用項目:建立安裝回應檔

您可以執行安裝執行檔,選取想要的選項,並將那些選項儲存至可用於無聲自動安裝產品的文字檔中。

  1. 使用下列指令行引數,將回應檔寫入不同的目錄。
    在 Windows 系統上
    factory.exe -r full path to the response file destination
    在 Linux 系統上
    /Factory.bin -r full path to the response file destination
    例如,下列指令會將您提供的回應寫入指定目錄中的檔案 myresponse.txt
    factory.exe -r c:\temp\myresponse.txt
  2. 提供您的回應,以完成安裝。
  3. 產生回應檔之後,將下列行新增至產生的檔案。
    INSTALLER_UI=silent
    LICENSE_ACCEPTED=true

遵循WebSphere Portlet Factory 產品安裝手冊中的程序,使用您的回應檔而非提供的內容檔執行無聲自動安裝。

步驟 2 - 執行指導教學:建立 Web 應用程式專案

在您順利安裝 WebSphere Portlet Factory Designer 之後,必須建立新的專案。 建立專案時,請提供安裝的應用程式伺服器特定資訊,以及 WebSphere Portal 伺服器特定資訊。此程序會完成 WebSphere Portlet Factory 安裝的部署階段。

WebSphere Portlet Factory Designer 會提供「新建專案」精靈,來協助您建立專案。 這個多頁精靈會引導您完成與專案建立及部署相關的步驟,並為您建置專案。說明專案設定及參數的「F1 說明」可用於精靈的每個頁面。 請參閱「F1 說明」,以瞭解給定頁面上的設定,並存取其他資訊的鏈結。

建立第一個專案的最佳方法是執行說明此程序的指導教學。 如果您正在使用 Windows 用戶端,則此指導教學可以從「歡迎使用」頁面或開始取得。請按一下開始 > 程式集 > IBM > WebSphere Portlet Factory > 指導教學。 如果您正在使用 Linux 用戶端,則此指導教學可以從 WebSphere Portlet Factory 說明系統取得。

3. 安裝注意事項

安裝之後,您可能需要執行幾個作業。

3.1 Eclipse 的國家語言支援

WebSphere Portlet Factory Designer 支援下列語言:德文、西班牙文、法文、義大利文、日文、韓文、葡萄牙文(巴西)、繁體中文及簡體中文。

若要以英文以外的語言來使用 Eclipse,您必須從 Eclipse 網站下載語言套件,並將該套件安裝至 Eclipse IDE。

  1. WebSphere Portlet Factory Designer 中,按一下說明 > 安裝新的軟體
  2. 在「安裝」對話框中,按一下新增
  3. 在「新增網站」對話框的名稱中,輸入說明套件的文字(例如,語言 FR),並在位置中,輸入下列 URL。
    http://download.eclipse.org/technology/babel/update-site/R0.8.1/helios
  4. 按一下確定,讓可用語言清單可用。

    此項作業可能花費數分鐘。

  5. 在可用語言清單中,展開您想要的語言,並從可用語言套件清單中,選取下列項目。
    Babel language pack for eclipse language (%)
    此選項提供所有必備條件程式碼。
  6. 下一步以載入語言,並再按下一步以安裝語言。
  7. 接受授權合約,並按一下完成
  8. 安裝完成之後,重新啟動 Eclipse,並將指定了語言的 -nl 選項新增至啟動指令,例如,-nl fr
    註: 如果 Microsoft Windows 系統配置為使用非英文「群組 1」語言,則 Eclipse 會立即以該語言執行。
    註: 不支援在專案名稱或路徑的資料夾名稱中使用多位元組字元。
  9. 選擇性的: 您可以將語言 ID 新增至 Eclipse 啟動指令,從而強制 WebSphere Portlet Factory Designer 以任何「群組 1」語言執行。
    例如,如果您將下列 ID 新增至啟動指令,則無論系統配置為使用哪一種語言,都能以西班牙文執行 WebSphere Portlet Factory Designer。
    -Duser.language=es -Duser.country=ES
    註: IBM Rational Application Developer 中支援相同的語言。 如果您想要將語言支援安裝至 Rational Application Developer,請使用「安裝管理程式」(或在安裝 Rational Application Developer 時安裝它)。 如需安裝語言支援的指示,請參閱 Rational Application Developer 文件。

3.2 Apache Tomcat

執行 WebSphere Portlet Factory Designer「新建專案」精靈之後,請重新啟動 Tomcat。這樣可確保正確載入所有程式庫。

3.3 Linux 系統上 Eclipse 雙位元組語言問題

在雙位元組語言上進行 WebSphere Portlet Factory 的 Linux 安裝,可能不會顯示正確的字型。可能的解決方案包括:
  • 安裝您正在使用語言的所有可用字型。
  • 在與您的語言選項相容的系統上,使用 JRE 來啟動安裝程式。 例如:
    /Factory.bin LAX_VM $JAVA_HOME/bin/java 
註: IBM Rational Application Developer 中支援相同的語言。 如需安裝語言支援的指示,請參閱 Rational Application Developer 文件。

4. 移除 IBM WebSphere Portlet Factory

遵循 WebSphere Portlet Factory 產品安裝手冊WebSphere Portlet Factory 產品安裝手冊 中的步驟(視您的用戶端平台而定),然後遵循 WebSphere Portlet Factory 產品安裝手冊中的步驟,以移除 WebSphere Portlet Factory Designer 檔案及專案 WAR 檔。

4.1 移除 Windows 系統的 WebSphere Portlet Factory Designer

  1. 使用 Windows「控制台」來存取「新增/移除程式」。
  2. 選取要解除安裝的產品,並按一下變更/移除
  3. 出現「解除安裝」視窗時,請按一下解除安裝

    從系統移除產品檔、登錄項目及捷徑。

    註: 您可以解除安裝 WebSphere Portlet Factory,而不解除安裝 WebSphere Application Server Community Edition。 然後,便可安裝新版本的 WebSphere Portlet Factory,而不安裝 WebSphere Application Server Community Edition (因為您已經安裝了某個版本)。 如果從開始功能表或從 WebSphere Portlet Factory 執行 WebSphere Application Server Community Edition,則會收到一則錯誤訊息,指出 WebSphere Application Server Community Edition 找不到 java.exe 檔。
    若要避免此問題,請開啟 \wasceInstallDir\bin\setenv.bat 檔,然後編輯下列字行。
    set WASCE_JAVA_HOME=
    將值設為系統上的 JRE。 例如,使用已安裝在 Eclipse 上的 JRE (C:\Program Files\eclipse\jre)。

4.1.1 移除 Linux 系統的 WebSphere Portlet Factory Designer

若為 Linux 安裝,您需要手動移除安裝程式建立的特定檔案及目錄。
  1. 刪除安裝目錄中的 Designer 目錄及日誌檔。
  2. 如果需要,請刪除 <original install directory>/license 目錄
  3. 刪除稱為 com.bowstreet.designer.link WebSphere Portlet Factory 鏈結檔案,其位於 <IDE_INSTALL_DIR>/links 目錄中。 例如,/opt/IBM/SDP75/links

4.2 移除專案 WAR 檔

  1. 使用應用程式及入口網站伺服器管理工具,來移除可安裝及已安裝的 WAR 檔案。
  2. 管理工具只會移除已安裝的應用程式,所以可能需要手動刪除任何剩餘的應用程式或 Portlet 相關目錄及檔案。

5. 升級外掛程式檔案、專案及 Portlet

本節討論將新版 WebSphere Portlet Factory 安裝至已安裝舊版的 IDE(Eclipse 或 IBM Rational)時,升級 IBM WebSphere Portlet Factory 外掛程式檔所需的程序。 本節還說明如何將使用舊版 WebSphere Portlet Factory Designer 所建置的專案,更新為最新專案版本。 最後,本節說明如何將 Portlet 升級為「Java Portlet 標準 API」。

5.1 從 5.12、6.0.0、6.0.1、6.0.2、6.1.0、6.1.2、6.1.5 及 7.0 版升級專案

升級「平面式」專案時,建立新的專案,並使用匯出 > WebSphere Portlet Factory 保存檔功能,將您的內容移轉至該專案中。 階層專案是 5.12 或 6.0 專案,且沒有 WebContent 目錄。 如果升級階層專案,則您將得不到資料類型支援的新增好處。

您必須修改使用舊的外掛程式檔建立的任何專案,讓這些專案可以包括與新外掛程式檔及特性集相關的變更。

  1. WebSphere Portlet Factory Designer 中開啟現有專案。
  2. 用滑鼠右鍵按一下「專案瀏覽器」中的專案項目,然後按一下 WebSphere Portlet Factory 專案 > 升級專案版本
  3. 即會顯示摘要資訊。 按下一步
  4. 必要的話,更新此專案的部署資訊。 檢查部署配置,並按一下升級精靈中的完成
  5. 升級程序完成之前,可能會提示您改寫專案中已變更的任何 WebSphere Portlet Factory 檔案,其中包括 WebSphere Portlet Factory 功能所變更的檔案,不一定是已手動變更的檔案。
  6. 您需要將專案重新部署至伺服器。 提示進行重新部署時,請按一下
  7. 用滑鼠右鍵按一下工作區中的專案。
  8. 按一下內容 > WebSphere Portlet Factory 內容 > 特性資訊
  9. 設定重新整理已安裝的特性集,然後按一下確定

如果您已將任何 Jar 檔新增至 /WEB-INF/work/lib 中,則需要在專案升級之後,以手動方式將它們新增至建置路徑。

5.2 將 Portlet 升級為 Java Portlet 標準 API

WebSphere Portal 支援 WebSphere Portlet 的「Java Portlet 標準 API」。雖然設計用於已淘汰 WebSphere Native Portlet API 的 Portlet 可能繼續在 WebSphere Portal 中執行,但建議使用「Java Portlet 標準 API」來建置任何新的 Portlet。

針對使用已淘汰之 WebSphere Native Portlet API 建置的 Portlet,您可以輕鬆地將其升級至「Java Portlet 標準 API」。 若要執行此動作,您必須修改包含 Portlet 模型的專案。
註: 如果您已升級專案,則可以透過將專案切換至「Java Portlet 標準 API」,從而切換至「Java Portlet 標準 API」。透過如下列步驟中所述解除安裝舊 WAR,變更伺服器配置,並更新專案以使用「Java Portlet 標準 API」伺服器配置。當系統提示時,發佈專案。

若要升級舊版 WebSphere Portlet Factory 中建置的 Portlet,以使用「Java Portlet 標準 API」,請執行下列步驟。

  1. 將包含 Portlet 模型的專案載入至 WebSphere Portlet Factory Designer。
  2. 選取專案,並按一下 WebSphere Portlet Factory 專案 > 升級專案版本
  3. 使用「WebSphere Portlet 管理」工具,從 WebSphere Portal Server 移除舊的 Portlet WAR 檔。

    (如果已升級專案,請將專案切換至「Java Portlet 標準 API」伺服器配置,然後更新專案以使用「Java Portlet 標準 API」伺服器配置,並在系統提示時重新進行部署。)

  4. WebSphere Portlet Factory Designer 中,使用其中一個匯出指令,將 Portlet WAR 檔更新至 WebSphere Portal 伺服器。
  5. 使用「WebSphere 管理」工具將更新的 Portlet 置於 WebSphere Portal 頁面上。

5.3 重新產生 Portlet 模型

如果您的模型是使用「協同作業 Portlet 來源」建置器或「協同作業 Portlet 目標」建置器,以及專案是使用「Java Portlet 標準 2.0 API (JSR 286)」,請重新產生模型。

需要執行這些步驟,才能擷取不存在於舊版 WebSphere Portlet Factory 的新事件 meta 資料。

  1. 針對專案 (包含「協同作業 Portlet 來源」建置器或「協同作業 Portlet 目標」建置器) 的每一個模型,開啟模型。
  2. 強制重新產生。

    例如,按一下模型 > 產生模型,或開啟任何建置器,然後按一下確定

  3. 儲存模型,然後再次發佈或匯出專案。

這個程序會擷取新的事件 meta 資料。

6. 啟用 IBM Tivoli License Manager 追蹤

IBM Tivoli® License Manager (ITLM) 辨識並監視在系統上安裝並使用的產品及其版本、版次及修正套件。這可讓 IBM 傳送其客戶基本程式中安裝的產品更新,並可以針對產品及用量適當地開立帳單。它也可以防止針對相同產品的多個安裝開立帳單,該產品與各種 IBM 套裝軟體一起提供。

IBM WebSphere Portlet Factory 一起建立的應用程式及 Portlet WAR 檔的用法可透過 Tivoli License Manager 監視並追蹤。若要啟用此功能,您必須將 WebSphere Portlet Factory 產生的特定檔案及 Tivoli License Manager 可辨識的特定檔案,置於應用程式或 Portlet EAR 檔的根層次。

若要啟用 Tivoli License Manager 用法追蹤,請執行下列作業:

WEB-INF\bin\itlm\ 目錄及其內容,拖曳至已部署 EAR 檔的根目錄。
註: 請確定 WEB-INF\bin\itlm\ 目錄只在一個位置中。 如果 EAR 檔含有此目錄的多個副本,您會看到雙重使用錯誤。
註: 只有在未將 WEB-INF\bin\itlm\ 目錄移至 EAR 檔的根目錄時,Tivoli License Manager 才會提供庫存追蹤。
如需使用 Tivoli License Manager 的相關資訊,請參閱 IBM WebSphere Portal 文件。

7. 在安裝期間使用 JAWS For Windows

如果您想要安裝 WebSphere Portlet Factory,並使用協助工具的 JAWS 螢幕閱讀器,則需要執行下列額外步驟,才能正確啟動安裝。

您的系統上需要已安裝 Java Access Bridge for Microsoft Windows 作業系統軟體。Java Access Bridge for Microsoft Windows Operating System 由 Oracle 提供。 Copyright (c) 2006 Oracle 及(或)其附屬公司。
使用下列指令來啟動 WebSphere Portlet Factory 安裝:
Factory.exe LAX_VM installDir-for-java\java.exe
其中,installDir-for-java\ 是您的本端 Java 安裝目錄。
這個指令會強制安裝作業使用您所指定,且使用 Java Access Bridge 的 JVM。

IBM Lotus Expeditor 6.1.1 安裝及設定

使用「Web 轉換器」特性來啟用 IBM Lotus Expeditor (XPD) 6.1.1,以支援動態 JSP。

這些指示僅提供作為補充之用,並無法取代 IBM Lotus ExpeditorIBM Lotus Notes® 8 開發人員及管理者文件。

安裝並啟用 IBM Lotus Expeditor (XPD) 6.1.1,以使用「Web 轉換器」特性支援動態 JSP。

  1. 安裝 IBM Lotus Expeditor 6.1.1 (請選擇預設值)。
  2. 啟動 IBM Lotus Expeditor 6.1.1 用戶端。
  3. 按一下檔案 > 應用程式 > 安裝
  4. 建立新的本端更新網站,並指向 IBM Lotus Expeditor DRE 產品媒體的 updates\client 目錄。
  5. 按一下完成
  6. 從 DRE 更新網站的 runtimes 種類中,選取核心 JVM 特性 - J2SE 特性
  7. 按一下完成,並完成此特性的安裝,並在要求重新啟動時重新啟動。
  8. 按一下完成
  9. 從更新網站的 runtimes 種類中,選取 Web 儲存器 - JSP 編譯器橋接器Eclipse Java 開發工具特性。
IBM Lotus Expeditor 6.1.1 現在應該可以支援動態 JSP。

整合延伸入門

IBM WebSphere Portlet Factory 中提供數個與後端系統的整合。

您可以將整合延伸新增至專案,就如同新增任何其他特性集一樣。 這可讓您使用延伸提供的建置器。

然而,在可以使用延伸之前,請執行相關入門主題中所述的必要安裝、配置及設定步驟。

Lotus 協同作業延伸

本主題說明「Lotus 協同作業延伸」。

入門

此套件為 IBM Lotus Domino 元件及服務提供 Domino 建置器,可擴充 WebSphere Portlet Factory 的功能及彈性。

此特性集還包括支援遠端呼叫並執行 Domino 代理程式的功能,以及使用其他安全保護方法 (例如,LTPA 記號IBM WebSphere Portal Server 認證) 的功能。 兩者都會啟用 Portlet 使用者的單一登入。

您使用這個套件建立的 Portlet 及小組件也可以併入狀態提示,以使用 Lotus 協同作業服務,例如交談、電子郵件、設定檔探索,以及作者與文件搜尋。 另外,使用 WebSphere Portlet Factory 獨特的功能來自訂 Portlet 及小組件,您可以建立自訂的 Portlet 或小組件,僅向您的使用者提供所需的視圖及協同作業特性。

1 安裝注意事項

採用安裝任何其他特性集相同的方法來安裝此協同作業套件。

註: 視應用程式伺服器設定而定,您的伺服器可能需要重新啟動,才能正確登錄所有的特性集檔案。 若要確保 WebSphere Portlet Factory Designer 會正確地辨識所有檔案,請在安裝此特性集之後,先結束再重新啟動 WebSphere Portlet Factory Designer。

2 配置需求

2.1 Domino 伺服器內容檔

為方便起見,您可以設定內容檔,以建立及控制 Domino 伺服器設定。 當您在「Domino 資料存取」建置器中選取此檔案時,此檔案會用來建立與 Domino 伺服器的連線設定。

此檔案位於專案的 WEB-INF/config/domino_config 目錄中。 內容檔用於指定基本 Domino 連線內容,例如 Domino 伺服器的名稱及有效的 Domino 使用者名稱及密碼。 典型的 Domino 內容檔可能命名為 domino.properties,並包含下列各項:

# Domino application server
ServerName=
# Domino User Name
UserName=
# Domino Password
PassWord=
# Domino server http port
# The http port is used when the builder is configured to retrieve rich rext items as HTML.
# The Domino Attachment builder also uses these values when creating http
# links to attachments in the documents.
DominoHttpPort=80
# SSL Settings
# When rich text items are fetched as HTML, relative urls to Domino resources (images,
# other documents, etc.) in the html are converted to absolute URLS to the Domino
# resource. Thus, the browser will request these resources using the absolute URL.
# If the absolute URLS to Domino resources should use https, set DominoConvertAbsUrlsToSSL
# to true. Also set DominoHttpsPort to your Domino server's https port.
# The Domino Attachment builder will also use these properties when forming
# the URL to the attachment.
DominoConvertAbsUrlsToSSL=true
DominoHttpsPort=443
# If the application on the application server should use https when fetching rich text
# items from Domino's web server, set the following property to true.
# Note: if this property is true, the certificate from Domino's web server will need
# to be added to your application server JVM's cacerts file.  
DominoUseHttps=false
預設的 Domino server.properties 檔會與「Lotus 協同作業延伸」特性集一起安裝。 此檔案通常位於 WEB-INF/config/domino_config 目錄中。 使用此檔案,可以建立基本的 Domino 設定。
註: 使用「Domino 資料存取」建置器中可用的「連線置換」設定,可以置換此檔案中的設定。
註: 因為 WebContent/WEB-INF/config 目錄依預設是已排除的資源,因此您需要置換團隊檔案及目錄排除項目,以確保您的新檔案或已修改檔案會在來源控制儲存體中持續更新。

2.2 Domino 伺服器配置

若要使用這個套件及其包含的建置器,您必須具有 Domino 伺服器的 IIOP (網際網路交互 ORB 通訊協定) 存取權。 如需相關資訊,請參閱 Domino 說明。

若要啟動狀態提示功能,您必須正在執行 IBM WebSphere Portal Server Extend 或 WebSphere Portal Experience 產品,而且這些產品中的協同作業元件必須正確地配置並在 Domino 伺服器上執行。 這些元件包括下列其中一或多項:Sametime® (用於交談)、Discovery (用於使用者設定檔顯示畫面、作者/文件搜尋及郵件)。

檢查此產品的版本注意事項,以查看哪些 Lotus Collaboration 產品支援這個套件的元件。

2.3 Domino 安全設定

若要讓「Domino 資料存取」建置器存取 Domino 資源,必須配置 Domino 伺服器安全,以適當地容許及限制遠端呼叫。 控管此存取權的配置設定在「Domino 管理者」中設定。

您可以檢查現行伺服器文件的安全標籤,以檢視安全設定。 如需建立這些設定的相關資訊,請參閱 Domino Designer 說明。 在 Domino 第 6 版中,請參閱下列 Domino Designer 說明主題:Java/CORBA 類別 > Java 類別編碼準則 > 執行 Java 程式。 伺服器需求一節會討論安全設定。

2.3.1 支援資料庫瀏覽

Domino 伺服器必須支援對資料庫的瀏覽,以容許將可用資料庫、視圖、表單及代理程式的清單,移入建置器中的各種控制項。 讓資料庫可瀏覽的 Domino 伺服器設定,位於 Domino 目錄中的伺服器文件 InternetProtocols > HTTP 標籤中。 您還應該開啟安全標籤,然後將容許匿名 Notes 連線設為啟用 (是)。

2.3.2 執行代理程式

若要透過從 Portlet 或小組件遠端呼叫 Domino 代理程式的方法,來執行該代理程式,則您必須簽署該代理程式。 您的企業安全原則會指出執行此動作的方式,但是最後結果必須是 Portlet 或小組件使用者具有可以從 Portlet 或小組件內部,遠端呼叫代理程式的權限。

2.3.3 使用 SSL

若要利用 SSL 提供的安全,請執行某些程序,以針對 SSL 作業正確地配置 WebSphere Portlet FactoryDomino。 以下是針對 Domino 連線使用 SSL 所需的步驟。

  1. 將內容新增至位於專案之 WEB-INF/config 目錄中的 override.properties 檔,並將該內容設為 true。 (如果 override.properties 檔不存在,您必須建立它。) 新增下列內容。
    bowstreet.domino.session.enableSSL=true
  2. TrustedCerts.class 檔可供 WebSphere Portlet Factory Designer 使用。 若要執行此動作,請採用 TrustedCerts.class 檔並將其置於 Jar 檔中。 TrustedCerts.class 檔位於 Domino 伺服器的 Domino\Data\domino\java 目錄中。

    使用 SSL 啟用 DIIOP 埠時,Domino 伺服器會產生 TrustedCerts.class 檔。 此檔案包含伺服器所驗證的憑證。

  3. 將包含 TrustedCerts.class 檔的 Jar 檔,新增至 WebSphere Portlet Factory Designer 核心外掛程式的 /lib 目錄中。
    install_directory\Designer\eclipse\plugins\com.bowstreet.designer.core_version-number\lib
  4. 若為 Eclipse 3.3.x 版及以上版本,請編輯 install_directoryDesigner\eclipse\plugins\com.bowstreet.designer.core_6.1.5\META-INF\MANIFEST.MF 檔,並將 sslClasses.jar 檔放到 Bundle-ClassPath: 清單中。 例如:
    Bundle-ClassPath: designercore.jar,
     lib/jakarta-poi.jar,
     lib/jxl.jar,
     lib/sapjco.jar,
     lib/SiebelJI.jar,
     lib/SiebelJI_Common.jar,
     lib/SiebelJI_enu.jar,
     lib/Siebel.jar,
     lib/sslClasses.jar
     lib/activation.jar,
     lib/portlet.jar,
     lib/bstres.jar,
     lib/bstres_nl1.jar,
     lib/builderui-res.jar,
     lib/builderui-res_nl1.jar,
     lib/jdom.jar,
     lib/builderimages.jar,
     lib/NCSO.jar,
     lib/packman.jar,
     lib/factory.jar,
     lib/builderui.jar,
     lib/j2ee.jar,
     lib/icons.jar,
     lib/wsdl4j.jar,
     lib/classparser.jar,
     lib/axis.jar,
     lib/commons-fileupload.jar,
     lib/commons-logging.jar,
     lib/commons-discovery.jar,
     lib/commons-pool.jar,
     lib/wc50.jar,
     lib/WidgetExtension.jar,
     lib/WidgetExtension_nl1.jar,
     lib/xercesImpl.jar,
     lib/xml-apis.jar,
     bin/,
     lib/log4j.jar
    若為 Eclipse 3.2.x 版及舊版本,請編輯位於下列位置中的 plugin.xml 檔,以併入此 Jar 檔。
    install_directory\WPFDesigner\eclipse\plugins\com.bowstreet.designer.core_version-number

    例如,這樣的編輯可能會如下所示:

    <library name="lib/sslClasses.jar">
    <export name="*"/>
    </library>
  5. 將包含 TrustedCerts.class 檔的 Jar 檔,新增至專案的 WEB-INF/lib 目錄中。

    此新增動作會讓 TrustedCerts.class 檔可供執行時期環境使用。

  6. 重新啟動 WebSphere Portlet Factory Designer。
    註: 如果您使用 Eclipse 3.x,則可能需要執行指令行參數上的 -clean 旗標,以挑選此 Jar。
  7. 使用 Domino 建置器,連接至埠 63148 上的 Domino 伺服器。例如:
    domino_server.my_company.com:63148
註: 您必須正確地配置 Domino 伺服器,以支援 DIIOP 埠上的 SSL。 如需詳細資料,請參閱 Domino 文件。

3 Domino Portlet 入門

開始建置 Domino Portlet 的方法有兩種:

  • 如果您是專業使用者

    WebSphere Portal 內,使用「Domino 自訂程式」來複製,然後修改 Domino Portlet。 如需相關資訊,請參閱3.1 針對進階使用者

  • 如果您是開發人員

    採用 Domino 指導教學並檢查範例模型。 如需相關資訊,請參閱3.2 針對開發人員

3.1 針對進階使用者

請遵循這些簡單步驟,來建置自訂 Domino Portlet。

  1. WebSphere Portal 伺服器中,尋找「Domino 範本」Portlet。
  2. 使用入口網站「處理頁面」功能,將此 Portlet 新增至頁面。
  3. 搜尋所有可用的 Portlet,從清單中選取新的 Portlet,將其放置在頁面上,再按一下完成.
    在起始顯示畫面上,Portlet 會顯示下列內容:
    This portlet has not been configured. Use the portlet's Configure icon to configure the portlet. This involves specifying a Domino server, database and view,   in additional to several other Domino configuration settings. Press the portlet's Help button to display additional information about configuring the portlet and viewing it in the WebSphere portal.

3.2 針對開發人員

  1. 存取位於開始功能表之 IBM WebSphere > Portlet Factory > 指導教學區段的 Domino 指導教學。 遵循建立 Domino 應用程式的指示。
  2. 將您所建立的應用程式與提供的範例模型進行比較。
    註: 範例模型內嵌的註解說明所用的技術。
    \WEB-INF\models\samples\domino\ 目錄中尋找該範例模型。
  3. 將範例 Domino 資料庫複製到 Domino 伺服器中,並檢查範例模型與之互動的方式。 該範例資料庫位於 project_root\samples\domino\nodeploy 目錄中。

4 Domino 小組件入門

採用 Domino 指導教學並檢查範例模型。

  1. 在說明中,按一下 IBM WebSphere Portlet Factory Designer > 瞭解 WebSphere Portlet Factory,以存取 Domino 指導教學。 遵循建立 Domino 應用程式的指示。
  2. 將您所建立的應用程式與提供的範例模型進行比較。
    註: 範例模型內嵌的註解說明所用的技術。
    \WEB-INF\models\samples\domino\ 目錄中尋找該範例模型。
  3. 將範例 Domino 資料庫複製到 Domino 伺服器中,並檢查範例模型與之互動的方式。 該範例資料庫位於 project_root\samples\domino\nodeploy 目錄中。

5 Domino 連線儲存區作業

依預設,現在「Domino 資料存取」建置器會在可配置數量的快取 CORBA ORB (Object Request Broker) 之間配送 Domino 階段作業。 這可減少網路資源,因為使用給定 ORB 建立的所有階段作業都共用一個 TCP/IP 連線。 使用下列內容來控制這些操作。
bowstreet.domino.numOrbs=N
指定在所有 Domino 階段作業之間建立及共用的 CORBA ORB 數目。 如果未設定此內容,則預設值為 5。 為了協助將負載分攤到整個 ORB 集,系統會從快取擷取循序 ORB 來處理 Domino 交易。 請小心,不要讓網路連線超載。 根據您的應用程式效能需求,調整 ORB 的數目。 另外,需要較長時間的 Domino 交易還會阻斷其他階段作業使用同一個 ORB。 因此,請務必小心,確保 Domino 交易快速進行。
bowstreet.domino.session.pooling.originalImplementation=(true 或 false)
指定 true,可以回復到 6.0.2.1 之前處理實作的原始連線。 這不是建議的作法。 預設值為 false。

WebSphere Portlet Factory 套裝在一起的是與 Domino 第 8 版的 NCSO.jar 具有舊版相容性的產品,它包含 Domino CORBA 實作中的效能加強功能。

PeopleSoft 延伸

本主題說明「PeopleSoft 延伸」。

入門

「PeopleSoft 延伸」為 IBM WebSphere Portlet Factory 使用者提供下列重要特性:

單一登入功能
使用 IBM WebSphere Portal Server 認證儲存庫。
自動化 Portlet 程式碼
包括支援標準元件介面方法 (Get、Find、Create、Save、Cancel)、產生各種顯示及編輯頁面,以及建立綱目來說明元件介面所包含的資料。
與其他建置器無縫地整合
建立健全、高度自訂的 Portlet,包括自訂外觀與操作方式。

1.0 安裝注意事項

採用安裝任何其他特性集相同的方法,來安裝「PeopleSoft 延伸」。

  1. 如需受支援產品版本的相關資訊,請參閱版本注意事項主題的詳細系統需求。
  2. 在專案的右鍵功能表中,選取內容。 展開 WebSphere Portlet Factory 種類,並選取特性資訊
  3. 特性資訊畫面中,選取 PeopleSoft 延伸,並按一下套用。 按一下確定,以新增特性集。 請在出現提示時,選擇重新部署。
  4. psjoa.jar 檔案的副本置於 Eclipse 專案的 work/lib 資料夾中。

    可以從您的 PeopleSoft 安裝或「PeopleSoft 客戶服務代表」取得「PeopleSoft Java 物件配接器」JAR 檔 (即 psjoa.jar)。

    JAR 檔包含建置器用來存取 PeopleSoft 伺服器的 Java 類別。 如果您具有 PeopleSoft 的本端安裝,請在 PS_HOME 目錄中搜尋此檔案的副本。

    註: 建置器所使用之此 JAR 檔的版本必須符合正在存取之 PeopleSoft 伺服器的版本。 將不相符的 psjoa.jar 檔與您的 PeopleSoft 伺服器搭配使用,會導致在建置器重新產生及執行時期發生錯誤。
註: 根據伺服器設定,應用程式伺服器及 WebSphere Portlet Factory Designer 可能需要重新啟動才能正確登錄所有特性集檔案。
註:WebSphere Portal Server 環境中,必須設定類別載入順序,以便在載入協力廠商 JAR 檔之後載入其他 JAR 及類別。 這會確保 WebSphere Portal Server 可以存取及使用這些協力廠商檔案。 如需在 WebSphere Portal Server 中建立此設定所需的步驟,請參閱《 WebSphere Portlet Factory 安裝手冊》。

1.1 驗證安裝

若要確認正確安裝建置器及 JAR 檔,請遵循下列步驟:

  1. 建立新模型。
  2. 將「PeopleSoft 元件介面」建置器新增至模型,並輸入建置器的名稱。
  3. 在「連線群組」下,選取 default_connection.properties 作為內容檔輸入的值。
  4. 按一下測試連線按鈕。
  5. 畫面上應該會顯示指出已順利建立連線的對話框。 如果連接至您的 PeopleSoft 伺服器時發生問題,則畫面上會顯示含有錯誤訊息的錯誤對話框。

2.0 配置需求

使用 PeopleSoft 建置器的第一步是建立連線內容檔。 此檔案位於專案的 /WEB-INF/config/peoplesoft_config/ 目錄中。 內容檔 (default_connection.properties) 用來指定連線內容,例如 PeopleSoft 伺服器的名稱及有效的 PeopleSoft 使用者名稱及密碼。

一般內容檔可能包含下列內容:

 #Default connection properties for the PeopleSoft Builders

 # PeopleSoft application server
 hostserver=pplsoft:9000

 # Logon user name
 UserName=jdoe
 
 # Logon password 
 PassWord=PS
註: 因為 WebContent/WEB-INF/config 目錄依預設是已排除的資源,因此您需要置換團隊檔案及目錄排除項目,以確保您的新檔案或已修改檔案會在來源控制儲存體中持續更新。

3.0 PeopleSoft 階段作業儲存區作業及內容

PeopleSoft 建置器支援您後端 PeopleSoft 伺服器之階段作業的儲存區作業。 依預設,會停用階段作業儲存區作業 (這是 WebSphere Portlet Factory Designer 環境的合理配置)。 然而,在伺服器上,您可能想要啟用儲存區作業,以最小化建立的階段作業數目,並改進整體建置器執行時期效能。

您可以將下表中的內容新增至 PeopleSoft 專案的 .../WEB-INF/config/override.properties 檔中,以啟用及配置 PeopleSoft 階段作業儲存區作業。

註: PeopleSoft 建置器會使用標準的開放程式碼 Apache Commons 儲存區作業實作。 如需這些內容意義的詳細資訊,請參閱 Apache 網站上 GenericKeyedObjectPool 類別的 Commons 文件。
表 4. 要啟用及配置階段作業儲存區作業的內容
內容 預設值 效果
bowstreet.peoplesoft.session.pool.enabled false 如果已定義且設為 TRUE,則會啟用階段作業儲存區作業。
bowstreet.peoplesoft.session.pool.maxActiveSessions 8 一次可處於作用中階段作業的數目上限。 值為負數時,作用中階段作業數目沒有限制。
bowstreet.peoplesoft.session.pool.maxIdleSessions 8 儲存區中同時可處於閒置的階段作業數目上限。 值為負數時,閒置的階段作業數目沒有限制。
bowstreet.peoplesoft.session.pool.maxWait -1 等待階段作業回到儲存區的時間上限 (以毫秒為單位)。 值為負數時,發出要求的執行緒會無限期地等待傳回階段作業。 如果指定的時間內沒有階段作業回到儲存區,則發出要求的執行緒會接收到異常狀況。
bowstreet.peoplesoft.session.pool.maxIdleTimeSeconds 1800 收回階段作業之前,在儲存區中容許其保留為閒置狀態的時間上限 (以秒為單位)。 值為負數時,不會基於閒置時間收回階段作業。
bowstreet.peoplesoft.session.pool.idleSessionSweepSeconds 30 清理儲存區以尋找要收回之閒置階段作業的最長時間間隔 (以秒為單位)。 值為負數時,會停用儲存區清理。
bowstreet.peoplesoft.session.pool.maxAgeMinutes -1 無論其閒置階段作業設定為何,收回階段作業之前的經歷時間上限 (以分鐘為單位)。 值為負數時,永遠不會因階段作業的經歷時間而將其收回。
註: 此為不是在「共用」程式庫中實作的 WebSphere Portlet Factory 特定特性/內容。

SAP 延伸

本主題說明 SAP 延伸。

入門

「SAP 延伸」為 IBM WebSphere Portlet Factory 使用者提供下列重要特性。

使用 SAP JCo 連接至 SAP
SAP JCo 介面支援連線儲存區作業,並監視 Portlet 與 SAP 通訊的管理。
註: 如需 WebSphere Portlet Factory 所支援 SAP JCo 版本的相關資訊,請參閱版本注意事項主題中的詳細系統需求。
單一登入功能
使用 IBM WebSphere Portal Server 認證儲存庫。
自動化 Portlet 程式碼
包括取得 SAP 資料的方法、說明函數傳回之資料的綱目、保留「表格」、「匯入項目」及「匯出項目」的變數 (以綱目為類型)。
與其他建置器無縫地整合
建立健全、高度自訂的 Portlet,包括自訂外觀與操作方式,甚至是對自訂 BAPI 的存取權。

1.0 安裝注意事項

「SAP 延伸」中的元件支援下列 SAP 產品版本。

表 5. SAP 產品版本
SAP 產品 支援的版本
R3 如需受支援的版本,請參閱 WebSphere Portlet Factory 版本注意事項主題的詳細系統需求。

安裝 SAP 延伸:

  1. 在專案的右鍵功能表中,選取內容。 請展開 WebSphere Portlet Factory 種類,並選取特性資訊
  2. 特性資訊畫面中,選取「SAP 延伸」,並按一下套用。 按一下確定,以新增特性集。 當提示時,不要發佈專案。在稍後的步驟中會顯示專案。
  3. 對於 Windows 系統
    sapjco3.jarWEB-INF/lib/WPF_JCo3Common.jar 檔案移至應用程式伺服器從中載入共用 JAR 檔的目錄。 WPF_JCo3Common.jar 包含部署至應用程式伺服器之所有 Portlet Factory 專案通用的 SAP 存取類別。 應用程式伺服器必須僅載入一個此 JAR 的副本。 如果伺服器載入多個副本,則在執行時期,您會收到錯誤。 如果您已經針對其他 Portlet Factory 專案完成此步驟,則您可以從專案移除 WEB-INF/lib/WPF_JCo3Common.jar
    同時將 sapjco3.dll 檔案複製到 Windows 作業系統的 system32 目錄。 (例如,在 Windows XP 系統上,位於 C:\Windows\system32。)
    WebSphere
    \WebSphere\AppServer\lib\ext
    IBM WebSphere Application Server Community Edition
    WebSphere Application Server Community Edition 需要您部署任何 JAR 檔,以便在兩個以上作為「共用程式庫」的 Web 應用程式之間共用。 每個 Web 應用程式都會在 <dependencies/> 節點的 geronimo-web.xml 檔中參照此部署的共用程式庫。 WebSphere Portlet Factory 會將 sapjco3.jar 檔案的範例「共用程式庫」部署註解參照(以及其他 WebSphere Portlet Factory 整合建置器的 JAR 檔案參照),移入 geronimo-web.xml 檔案。
    「群組」、「構件」、「版本」及「類型」的值大多是隨意的。 請選擇與您擁有的任何命名慣例或其他任何考量對應的值。 按一下安裝,會將 JAR 檔放置在 <WASCE>/repository/Group/Artifact/Version/Type 目錄中,而 WebSphere Application Server Community Edition 伺服器層面類別載入器則會載入該 JAR。
    1. 開啟 WebSphere Application Server Community Edition 伺服器主控台。
    2. 選取「服務」下的「共用程式庫」鏈結。
    3. 使用「瀏覽」選項,選取及新增 SAP Jar 檔。
    4. 使用命名慣例來輸入「群組」、「構件」、「版本」及「類型」。
    5. 按一下安裝,以新增 JAR 檔。
    在 Linux、UNIX® 及 z/OS® 平台上
    如需作業系統特定的指示,請參閱「SAP Java 連接器」安裝文件。
    註: 如果在 Linux 系統上執行 WebSphere Portlet Factory,則需要在 sapjco3.jarWPF_JCo3Common.jar 檔案上設定下列許可權。
    -rwxr-xr-x (755)
    擁有者應為 root,而群組應設為您的 WebSphere Portlet Factory 使用者所屬的群組。 如果您的 WebSphere Portlet Factory 使用者不是 WebSphere Application Server 使用者,則您必須依據「SAP Java 連接器」安裝文件中的指示,設定該使用者的環境,才能讓該使用者存取 SAP 程式庫。
    註: http://service.sap.com 上的 SAP 客戶可以使用此步驟中所需的 SAP 程式庫檔案。
  4. 重新部署專案。
  5. 必須讓 WPF_JCo3Common.jarsapjco3.jar 檔案可用於 Eclipse 的 IDE 外掛程式。若要讓此 JAR 檔可用,請執行下列步驟:
    1. 尋找 WebSphere Portlet Factory Designer 核心外掛程式資料夾。 例如:
      Windows 系統:
      C:\Program Files\IBM\WebSphere Portlet Factory\Designer\eclipse\plugins\com.bowstreet.designer.core_latest version
      Linux 系統:
      /home/user/IBM/Designer/eclipse/plugins/com.bowstreet.designer.core_latest version
    2. WPF_JCo3Common.jarsapjco3.jar 檔案複製到您剛找到之外掛程式資料夾的 \lib 資料夾中。
      註: 請勿重新命名這些 JAR 檔;配置核心外掛程式,以特別查看具有這些名稱的 JAR。如果您重新命名這些檔案,則 WebSphere Portlet Factory Designer 將無法載入其類別,也無法與 SAP 伺服器進行通訊。根據伺服器設定,應用程式伺服器及 Designer 可能需要重新啟動才能正確登錄所有特性集檔案。
  6. WebSphere Portlet Factory 應用程式參照「共用程式庫」(僅限 WebSphere Application Server Community Edition 使用)
    WebSphere Portlet Factory 專案中的 geronimo-web.xml 檔案包含 sapjco3.jarWPF_JCo3Common.jar 檔案之已註銷相依關係的清單。 您必須將「群組」、「構件 ID」及「版本」值,取代為您在 sapjco3.jar 檔的「共用程式庫」部署中定義的值。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
    <dependency>
    	 <groupId>wpf_integration</groupId>
    <artifactId>WPF_JCo3Common.jar</artifactId>
    <version>1.0.0</version>
    </dependency>
    <dependency>
    	 <groupId>wpf_integration</groupId>
    <artifactId>sapjco3.jar</artifactId>
    <version>3.0.5</version>
    </dependency></web-app>

1.1 驗證安裝

若要確認是否正確安裝建置器及 JCo,請遵循下列步驟:

  1. 針對您正在使用的 SAP 伺服器,配置 default_sap_server.properties 檔 (如下面的「配置需求」所述)。
  2. 重新啟動 IDE 或 WebSphere Portlet Factory Designer 環境,以完成安裝程序。
  3. 開啟 WebSphere Portlet Factory Designer 中的 SAP 物件瀏覽器模型,並確定沒有在「作業視圖」中看到錯誤。 (此模型位於 WEB-INF/models/samples/SAP 資料夾,可以從「Eclipse 導覽器」進行存取。)
  4. 執行模型。 確認模型正確執行,而且您可以往下探查至傳回的 SAP 資料。
註:IBM WebSphere Portal Server 環境中,必須設定類別載入順序,以便在載入協力廠商 JAR 檔之後再載入其他 JAR 檔及類別。 此載入順序確保 WebSphere Portal 可以存取及使用這些協力廠商檔案。 如需在 WebSphere Portal Server 中建立此設定所需的步驟,請參閱《IBM 安裝手冊》。

2.0 配置需求

使用 SAP 建置器的第一步是建立目的地內容檔。此檔案位於專案 WEB-INF/config/sap_config/ 目錄中。

內容檔用於指定 SAP 連線內容,如 SAP 伺服器的名稱及有效的 SAP 使用者名稱及密碼。 典型的 SAP 內容檔可能命名為 my_sap.properties,並包含下列內容:

# SAP application server
jco.client.ashost=

# Logon user
jco.client.user=

# Logon password
jco.client.passwd=

# SAP client
jco.client.client=000

# Logon language
jco.client.lang=EN

# SAP system number
jco.client.sysnr=00

預設 SAP server.properties 檔會與「 SAP 建置器」一起安裝。 此內容檔位於 WEB-INF/config/sap_config 目錄中。 您可以使用此檔案建立基本的 SAP 設定,以及檢視有效內容值的範例。 依據安裝時的配置,此檔案適用於在本端主機上執行的 MiniSAP 伺服器。

3.0 入門及使用物件瀏覽器

安裝並配置「SAP 延伸」之後,請執行物件導覽器模型。 您可以使用此模型探索 SAP 系統中的物件。 請使用下列步驟。

  1. 執行模型並檢視起始畫面。 畫面上會顯示包含系統中物件相關資訊的表格。 直欄列出每個物件的物件類型、物件名稱及說明文字。
  2. 按一下 OBJNAME 直欄中的鏈結。 畫面上會顯示一個新的表格。 此表格會在每列上顯示與專案相關的一組方法 (BAPI)。 按一下「方法」直欄中的鏈結。
  3. 畫面上會顯示包含該方法所有參數的其他表格。 也會提供參數的相關資訊(例如「說明」及「簡短文字」)。
  4. 按一下表格中的參數會列出參數的欄位。 您可以在這裡檢視欄位名稱、容許的長度、資料類型及欄位文字。

4.0 與 SAP 系統通訊

SAP 建置器使用 SAP JCo 介面(SAP 系統提供)連接至 SAP。此介面可讓 Java 應用程式與任何「SAP 系統」進行通訊。SAP JCo 介面支援連線儲存區作業,並監視 Portlet 與 SAP 通訊的管理。

4.1 連線儲存區大小

JCo 介面會定義數個新內容,用於啟用及配置目的地儲存區。 從用戶端的角度來說,目的地是一組連線內容,由 JCo 介面用於建立與 SAP 伺服器進行通訊。這些儲存區內容可新增至 WEB-INF/config/SAP_config/. 下儲存的內容檔中:

jco.destination.peak_limit=5
jco.destination.pool_capacity=1
jco.destination.expiration_time=60000

尖峰限制會定義一次目的地作用中連線的數目上限。 儲存區容量會定義在目的地儲存區中維護的閒置連線數目;值零會停用儲存區的使用。 有效期限會定義在關閉及移除閒置連線之前,其處於目的地連線儲存區中的時間上限(毫秒)。

已發現尖峰限制的預設值 5 可以提供足夠數目的連線及良好的效能。

5.0 延伸點

此區段與已部署的 WAR 相關,可存取使用 WebSphere Portlet Factory 實作的 SAP。如果您具有混合環境,則您可能需要撰寫少量自訂程式碼,以讓 WebSphere Portlet Factory 及非 WebSphere Portlet Factory WAR 協調其配置,並透過 JCo 介面存取 SAP。

如果您已經實作使用 WebSphere Portlet Factory 存取 SAP 的所有已部署 WAR,請忽略本小節。

5.1 自訂目的地資料提供者

SAP JCo 介面使用目的地的概念,來定義用戶端如何存取伺服器。 從用戶端的角度來看,目的地是一組具名的連線內容,JCo 介面使用這些內容來建立與內容中所指定之伺服器的連線。 這些連線不會向用戶端顯示,因此需要所有用戶端透過將目的地名稱傳遞至 JCo 方法,來與 SAP 伺服器進行通訊。

WebSphere Portlet Factory 會實作負責管理目的地內容集的登錄(也稱為目的地資料提供者)。 此登錄會為每個內容集指派唯一的目的地名稱,然後在用戶端在 JCo 方法中參照目的地名稱時,向 JCo 提供適當的內容集。

針對 JCo 執行時期,使用 JCo 介面,只能配置一個目的地資料提供者。透過 JCo 介面存取 SAP 的所有 WAR 都必須使用相同的目的地資料提供者。目的地資料提供者登錄位於 WPF_JCo3Common.jar 檔案。 藉由將此 JAR 置於應用程式伺服器從中載入共用 JAR 檔的目錄,您已讓 WebSphere Portlet Factory 目的地資料提供者實作可用於所有 WAR,而無論其是否使用 WebSphere Portlet Factory 進行建置。如果存取 SAP 的所有 WAR 都已經使用 WebSphere Portlet Factory 進行建置,則不需要再執行其他步驟。 不過,如果部署了非 WebSphere Portlet Factory WAR,且這些 WAR 透過 JCo 介面來存取 SAP,則需要讓那些非 WebSphere Portlet Factory WAR 使用 WebSphere Portlet Factory 的登錄,或者讓 WebSphere Portlet Factory 使用支援其他 WAR 的目的地資料提供者。

WebSphere Portlet Factory 包含一個延伸點,可讓您使用由協力廠商實作的目的地資料提供者。 目的地資料提供者必須實作位於 WPF_JCo3Common.jar 檔案中的 com.bowstreet.builders.webapp.methods.JCo3Common.DestinationRegistry 介面。 此介面可讓 WebSphere Portlet Factory 登錄由 SAP 建置器所使用的目的地內容集。藉由將內容 bowstreet.sap.destinationRegistry 設為實作 DestinationRegistry 介面之類別的完整名稱,可將 WebSphere Portlet Factory 配置為使用協力廠商目的地資料提供者。 在執行時期,WAR 中的 SAP 建置器會對此類別的單一實例進行實例化,並使用該單一實例來登錄所有必要的目的地。

5.2 自訂階段作業參照提供者

JCo 介面使用階段作業參照提供者,來產生階段作業 ID,以支援呼叫多個 SAP 函數,作為跨距多個執行緒之單一交易的一部分。 在 SAP 建置器執行時期, WebSphere Portlet Factory 會實作並使用階段作業參照提供者。 當針對 JCo 執行時期配置 JCo 介面時,該介面僅會使用一個階段作業參照提供者。 透過 JCo 介面存取 SAP 的所有 WAR 都必須使用相同的階段作業參照提供者。

WebSphere Portlet Factory 的階段作業參照提供者內含於 WPF_JCo3Common.jar 檔案中。 藉由將此檔案置於應用程式伺服器從中載入共用 JAR 的目錄,您已讓 WebSphere Portlet Factory 提供者實作可用於所有 WAR(無論是否使用 WebSphere Portlet Factory 進行建置)。如果存取 SAP 的所有 WAR 都使用 WebSphere Portlet Factory 進行建置,則不需要再執行其他步驟。 不過,如果部署了非 WebSphere Portlet Factory WAR,且這些 WAR 透過 JCo 介面來存取 SAP,則可能需要讓那些非 WebSphere Portlet Factory WAR使用 WebSphere Portlet Factory 的提供者,或者讓 WebSphere Portlet Factory 使用支援其他 WAR 的提供者。

WebSphere Portlet Factory 包含一個延伸點,可讓您使用由協力廠商實作的階段作業參照提供者。 提供者必須實作位於 WPF_JCo3Common.jar 中的 com.bowstreet.builders.webapp.methods.JCo3Common.SessionProvider 介面。 使用此介面, WebSphere Portlet Factory 會劃分 SAP 建置器所執行交易的開始及結束。藉由將內容 bowstreet.sap.sessionProvider 設為實作 SessionProvider 介面之類別的完整名稱,可將 WebSphere Portlet Factory 配置為使用協力廠商提供者。 在執行時期,WAR 中的 SAP 建置器會對此類別的單一實例進行實例化,並使用該單一實例來劃分所有交易。

Siebel 延伸

本主題說明 Siebel 延伸。

入門

Siebel 延伸為 IBM WebSphere Portlet Factory 使用者提供下列重要特性:

單一登入功能
使用 IBM WebSphere Portal Server 認證
自動化 Portlet 程式碼
Siebel 建置器包含在選擇的「Siebel 商業元件」中查詢、編輯及儲存資料的方法、說明方法傳回之資料的綱目,以及保留欄位選項及資料值的變數 (以綱目為類型)。
與其他建置器無縫地整合
建立健全、高度自訂的 Portlet,包括自訂外觀與操作方式。

1.0 安裝注意事項

「Siebel 延伸」中的元件支援下列 Siebel 產品版本:

表 6. Siebel 產品版本
Siebel 產品 受支援的版本
Siebel CRM 解決方案 如需受支援的版本,請參閱 WebSphere Portlet Factory 版本注意事項主題的詳細系統需求。

「Siebel 延伸」使用「Siebel Java 資料 Bean」介面存取 Siebel 儲存庫。 因此,您必須要求 Siebel 系統管理者提供下列特定版本專用的 Siebel JAR 檔:

  • 若為 Siebel 7.5.2 及 7.5.3:SiebelJI.jarSiebelJI_Common.jarSiebelJI_enu.jar
  • 若為 Siebel 7.8 及 8.0:Siebel.jarSiebelJI_enu.jar

採用與安裝任何其他特性集相同的方法,來安裝此「Siebel 延伸」。

  1. 在專案的右鍵功能表中,選取內容。 展開 WebSphere Portlet Factory 種類,並選取特性資訊。
  2. 特性資訊畫面中,選取「Siebel 延伸」,並按一下套用。 按一下確定,以新增特性集。 請在出現提示時,選擇重新部署。

將 Siebel JAR 檔新增至 IDE。

  1. 尋找 WebSphere Portlet Factory Designer 核心外掛程式資料夾,例如:
    C:\Program Files\IBM\WebSphere
    Portlet Factory\WPFDesigner\eclipse\plugins\com.bowstreet.designer.core_latest
    version
  2. 將 Siebel 版本所需要的 Siebel JAR 檔案,複製到這個外掛程式資料夾中的 \lib 資料夾。
  3. 請驗證剛剛複製到 \lib 資料夾的 JAR 列在 plugin.xml 檔中;您還會在包含 \lib 資料夾的相同資料夾中,找到此檔案。 此檔案中應該有足夠的預設定義。 然而,如果您為伺服器取得的 Siebel JAR 檔命名不同,則您需要調整定義以便 WebSphere Portlet Factory Designer 可以載入這些 JAR。

在下面選取要使用的伺服器,並遵循步驟來新增 Siebel JAR。

將 Siebel JAR 新增至 IBM WebSphere Application Server Community Edition (CE) 伺服器。

  1. 開啟 WebSphere Application Server Community Edition 伺服器主控台
  2. 選取「服務」下的「共用程式庫」鏈結
  3. 使用瀏覽選項來選取及新增 Siebel JAR 檔。
  4. 使用命名慣例來輸入「群組」、「構件」、「版本」及「類型」。

更新 Portlet Factory 中專案的 geromino-web.xml

  1. 開啟 WebContent\WEB-INF\bin\deployment\geromino-web.xml
  2. <dependencies> 下,您會看到下列內容:
    <dependency>
    		<groupId>wpf_integration</groupId>
       <artifactId>SiebelJI_enu</artifactId>
       <version>7.8</version>
    </dependency>
    <dependency>
    		<groupId>wpf_integration</groupId>
       	<artifactId>siebel</artifactId>
       	<version>7.8</version>
    </dependency>
  3. 解除註解此行,並將 groupID、artifactId 及 version 更新為在 WebSphere Application Server CE 伺服器上已指派給 JAR 的設定。
  4. 重建專案。

所有其他應用程式伺服器

將 Siebel JAR 檔複製到某個目錄中,您的應用程式伺服器可從該目錄載入所有已部署 WAR 共用的 JAR 檔。 例如: /WebSphere/AppServer/lib/ext

註: 根據設定,應用程式伺服器及 WebSphere Portlet Factory Designer 可能需要重新啟動才能正確登錄所有特性集檔案。

符合檔案編碼

若要順利通訊,則 Siebel 伺服器及外部 Siebel 用戶端 (例如 WebSphere Portlet Factory) 必須使用相容的檔案編碼。 例如,預設的 Windows 檔案編碼是 Cp1252。 在 RedHat Linux 上,預設檔案編碼是 UTF-8。

若要順利使用 Siebel 建置器,請確保您的用戶端平台符合 Siebel 伺服器所使用的檔案編碼。 例如,當 WebSphere Portlet Factory Designer 在 Linux 系統上執行時,JVM 的預設檔案編碼可以與 Siebel 伺服器所使用的預設檔案編碼不同。 Siebel 要求使用 Java API 來連接至 Siebel 伺服器的用戶端,具有與 Siebel 伺服器相同的預設檔案編碼。 如果預設檔案編碼設定不同,則在重新產生期間 Siebel 協調程式會失敗,且出現在 4 次嘗試中都無法開啟階段作業訊息。 這會導致模型錯誤,且模型不會執行。

若要在 Linux 系統上正確地重新產生 Siebel 建置器,請將 Eclipse JVM 預設檔案編碼設為與 Siebel 伺服器所使用的相同預設檔案編碼。 導覽至 Eclipse 安裝根目錄,並開啟 eclipse.ini 檔。 它會包含 Eclipse 所使用的 JVM 啟動參數。 將定義連接用戶端必須使用的編碼一行新增至檔案。 例如,如果 Siebel 伺服器使用 utf8 預設檔案編碼,請新增下列一行。
-Dfile.encoding=utf8
當您重新啟動 Eclipse 及 WebSphere Portlet Factory Designer 時,用戶端預設編碼會設為與伺服器相同的值,且 Siebel 建置器會正確地重新產生。

使用 testSiebelConnection.jsp 來測試 Siebel 連線

如果您想要使用 WebContent\factory\util\testSiebelConnection.jsp 來快速確保連線內容是正確的,則需要執行下列步驟:

  • 建立專案並將其部署至您的測試伺服器
  • 在瀏覽器中,開啟下列 URL。
    http://yourserver:port/projectName/factory/util/testSiebelConnection.jsp
  • 遵循測試頁面上的指示

2.0 配置需求

使用 Siebel 建置器的第一步是建立內容檔。 此檔案位於專案的 WEB-INF/config/siebel_config/ 目錄中。 此內容檔 (default_connection.properties) 用來指定連線內容,例如 Siebel 伺服器的連線字串,以及有效的 Siebel 使用者名稱及密碼。

註: 因為 WebContent/WEB-INF/config 目錄依預設是已排除的資源,因此您需要置換團隊檔案及目錄排除項目,以確保您的新檔案或已修改檔案會在來源控制儲存體中持續更新。

一般內容檔可能包含下列內容:

#Default connection properties for the Siebel Builder
ConnectString=siebel://10.10.2.125:2320/siebel_es/SSEObjMgr_enu/wicdemo9
UserName=sadmin
Password=sadmin

Siebel default_connection.properties 檔是使用「Siebel 建置器」安裝的。 此內容檔位於 WEB-INF/config/siebel_config/ 目錄中。 您可以使用此檔案建立基本的 Siebel 設定,以及檢視有效內容值的範例。 依據安裝時的配置,此檔案可適用於在本端主機上執行的 Siebel 伺服器。

SiebelRepository 內容

如果 WebSphere Portlet Factory Designer 中的 Siebel 建置器沒有在探索並顯示 Siebel 商業元件欄位,則您正在存取的 Siebel 伺服器可能以非預設名稱使用儲存庫。 如果要體驗這種行為,則將下列行新增到 Siebel 連線內容檔 (web-inf/config/siebel_config/default_connection.properties):
RepositoryName=Siebel Repository 
使用作用中儲存庫的名稱取代 Siebel Repository

3.0 階段作業儲存區作業及內容

Siebel 建置器支援對後端 Siebel 伺服器之階段作業的儲存區作業。 依預設,會停用階段作業儲存區作業 (這是 WebSphere Portlet Factory Designer 環境的合理配置)。 然而,在伺服器上,您可能想要啟用儲存區作業,以最小化建立的階段作業數目,並改進整體建置器執行時期效能。

您可以將下表中的內容新增至 Siebel 專案 .../WEB-INF/config/override.properties 檔中,以啟用及配置 Siebel 階段作業儲存區作業。

註: Siebel 建置器會使用標準的開放程式碼 Apache Commons 儲存區作業實作。 如需這些內容意義的詳細資訊,請參閱 Apache 網站上 GenericKeyedObjectPool 類別的 Commons 文件。
表 7. 要啟用及配置 Siebel 階段作業儲存區作業的內容
內容 預設值 效果
bowstreet.siebel.session.pool.enabled false 如果已定義且設為 TRUE,會啟用階段作業儲存區作業。
bowstreet.siebel.session.pool.maxActiveSessions 8 一次可處於作用中階段作業的數目上限。

值為負數時,作用中階段作業數目沒有限制。

bowstreet.siebel.session.pool.maxIdleSessions 8 儲存區中同時可處於閒置的階段作業數目上限。

值為負數時,閒置的階段作業數目沒有限制。

bowstreet.siebel.session.pool.maxWait -1 等待階段作業回到儲存區的時間上限 (以毫秒為單位)。

值為負數時,發出要求的執行緒會無限期地等待傳回階段作業。 如果指定的時間內沒有階段作業回到儲存區,則發出要求的執行緒會接收到異常狀況。

bowstreet.siebel.session.pool.maxIdleTimeSeconds 1800 收回階段作業之前,在儲存區中容許其保留為閒置狀態的時間上限 (以秒為單位)。

值為負數時,不會基於閒置時間收回階段作業。

bowstreet.siebel.session.pool.idleSessionSweepSeconds 30 清理儲存區以尋找要收回之閒置階段作業的最長時間間隔 (以秒為單位)。

值為負數時,會停用儲存區清理。

bowstreet.siebel.session.pool.maxAgeMinutes -1 無論其閒置階段作業設定為何,收回階段作業之前的經歷時間上限 (以分鐘為單位)。

值為負數時,永遠不會由於階段作業的經歷時間而將其收回。

註: 此為不是在「共用」程式庫中實作的 WebSphere Portlet Factory 特定特性/內容。

配置 IBM WebSphere Portlet Factory

您可以配置工作環境的許多方面。

如需配置 WebSphere Portlet Factory 的相關資訊,請遵循此 Wiki 鏈結 http://www-10.lotus.com/ldd/pfwiki.nsf/xpViewRecent.xsp?searchValue=configure%2C%20configuring

變更 IBM WebSphere Portlet Factory Designer 喜好設定

請遵循下列步驟,變更 WebSphere Portlet Factory Designer 喜好設定。

  1. 顯示 WebSphere Portlet Factory Designer 的「喜好設定」視窗。
  2. 在喜好設定頁面上,輸入一個以上喜好設定的值。
  3. 按一下套用
註: 變更何時生效,取決於您選取的項目。

顯示 IBM WebSphere Portlet Factory 喜好設定

您可以顯示 WebSphere Portlet Factory「喜好設定」對話框。

  1. WebSphere Portlet Factory 視景中,按一下視窗 > 喜好設定

    即會顯示「喜好設定」對話框。

  2. 在清單中,按一下 WebSphere Portlet Factory Designer

    「喜好設定」對話框即會顯示 WebSphere Portlet Factory Designer 的「一般」設定。 如需相關資訊,請參閱對話框的說明。

還原 IBM WebSphere Portlet Factory Designer 的預設喜好設定

請遵循下列步驟,以還原 WebSphere Portlet Factory Designer 的預設喜好設定。

  1. 顯示 WebSphere Portlet Factory Designer 的「喜好設定」視窗。
  2. 在「喜好設定」視窗中,按一下還原預設值
  3. 按一下套用
註: 變更何時生效,取決於您選取的項目。

關於喜好設定

WebSphere Portlet Factory Designer 中,您可以設定各種喜好設定。

這些喜好設定會決定 WebSphere Portlet Factory Designer 編輯環境的功能與外觀,以及執行模型時要使用的伺服器執行時期資源。

WebSphere Portlet Factory Designer 的預設喜好設定集儲存在 WebSphere Portlet Factory Designer 中的 preferences.ini 檔案內,該檔案位於 eclipse\plugins\com.bowstreet.designer.ui 目錄中。 如果您變更預設的喜好設定,則自訂的喜好設定集會儲存在您的工作區中,如此就不會改寫預設喜好設定。 此儲存策略可讓您隨時還原預設的喜好設定。

override.properties 檔案

兩個置換內容檔可用於取代在其他內容檔中設定的內容設定。

若要取代另一個內容檔 (如 bowstreet.propertiescluster.properties,通常是記載設定) 中的設定,則置換特性會很有用。 IBM WebSphere Portlet Factory Designer 會使用 override.properties 檔案,來指定 WebSphere Portlet Factory Designer 的記載內容,並置換在 IBM 伺服器 config 目錄中指定的內容。
註: 當您需要 override.properties 檔案時,必須手動建立它。

置換內容檔是:

在喜好設定中指定的檔案
包含由喜好設定所指定的置換內容 在視窗 > 喜好設定中指定的置換檔案通常包含單一的內容集,那些內容通常與執行時期的內容不同。 例如,記載內容、資料庫設定中的設定檔及建置器的設定。 您可以將此喜好設定設為下列外掛程式位置中的 override.properties 檔案。
designer_core_version_number/config

如果在開發期間變更內容,請使用此喜好設定來確保將變更正確地傳送到專案及 IBM 系統。

位於專案內的檔案
在每個專案的 WEB-INF/config 目錄中,專案專用的 override.properties 檔案可用於提供置換,該置換適用於 WebSphere Portlet Factory Designer (於開發期間) 及在執行模型時 (於執行時期)。 這些內容是專案及應用程式的唯一內容,因此是在專案層次設定。 此類內容的典型範例可以是開發應用程式所需的設定檔選擇處理常式。

每次啟動 WebSphere Portlet Factory Designer 時,都會發生下列動作:

  1. WebSphere Portlet Factory Designer 嘗試尋找在視窗 > 喜好設定 > WebSphere Portlet Factory Designer 頁面中指定的 override.properties 檔案。 如果找不到檔案,或未指定檔案,則 WebSphere Portlet Factory Designer 會預設為在下列路徑中找到的版本:

    Designer Install Location/plugins/com.bowstreet.designer.core_x.y.z/config/override.properties

  2. override.properties 中,會新增或置換下列內容。
    logging.driver.eventSink.directory=eclipseinstalldir
    /workspace/.metadata/.plugins/com.bowstreet.designer.core/logs
    logging.driver.eventSink.prefix=designer_event_
    logging.event.flush.interval=1 

    這樣會確保將 WebSphere Portlet Factory Designer 日誌寫入適當的位置。 override.properties 中的所有其他內容都不會受到影響。

IBM WebSphere Portlet Factory Designer 編輯喜好設定

此表說明您可以變更的 WebSphere Portlet Factory Designer 編輯喜好設定。

WebSphere Portlet Factory Designer 喜好設定 說明
瀏覽器指令 輸入執行模型時,要啟動的 Web 瀏覽器路徑。
註: 變更此設定僅會影響新的執行配置,而不會影響現有的執行配置。
置換內容檔位置 使用此設定,可以指定要使用的 override.properties 檔案。 此檔案中的設定用於取代在 preferences.ini 中建立的預設內容設定,還會決定日誌位置。
註: 對此欄位值進行的變更,要等到重新啟動 WebSphere Portlet Factory Designer 時才會生效。
IBM Support Assistant 位置 如果您已安裝 IBM Support Assistant,則指定用來啟動它的路徑。
顯示隱藏物件 啟用此勾選框時,可以設定 WebApp 視圖,使其顯示建置器呼叫新增至 WebApp 的所有物件。 當您按一下套用時,所有隱藏的物件都會顯示在「WebApp 視圖」中。
註: 不論顯示隱藏物件勾選框的狀態為何,由開發人員指定為隱藏物件的變數、方法、LJO 等,都不會顯示在「參照選擇器」中。
將視圖資料折行 啟用此勾選框時,可以在各種「網域」檢視器中折行。

與「WebApp 樹狀結構」視圖相關聯的「網域」檢視器,會顯示 WebApp 物件 (例如頁面或方法) 的內容。在某些情況下,在單行上檢視此資訊會很有用。 在其他情況下,則將資訊顯示為折行的文字會更好些。 使用此設定可以啟用折行。

在開啟的建置器上展開視圖 當您開啟建置器時展開視圖。
建置器呼叫編輯器 選取您要顯示建置器呼叫編輯器的方法:
標籤畫面
在建置器呼叫編輯器視圖中,將建置器呼叫編輯器顯示為標籤畫面。 當使用此設定時,您可以開啟多個建置器呼叫編輯器。
對話框視窗
將建置器呼叫編輯器顯示為模型對話框。 當使用此設定時,您僅可以開啟一個建置器呼叫編輯器。
註: 此設定中的變更,會影響在儲存喜好設定之後才開啟的模型。 若要將此設定套用至已開啟的模型,您必須關閉並重新開啟該模型。

設定 IBM WebSphere Portlet Factory 內容

WebSphere Portlet Factory 內容會影響開發的某些方面。

模型開發的下列方面由 WebSphere Portlet Factory 內容所決定。 除非另有指示,否則所有內容都會顯示在 WEB-INF/config/cluster.properties 檔案中。

設定編譯器以用於 JSP 及方法編譯
您可以決定 WebSphere Portlet Factory Servlet 用來編譯方法及 JSP 頁面的 Java 編譯器。
# specifies the compiler to use
bowstreet.methods.compiler=C:/jdk131/bin/javac.exe
決定模型之 Java 原始檔的目標目錄
WebSphere Portlet Factory Servlet 會產生模型中所有方法的 Java 原始檔。 您可以決定產生此檔案的目錄。 預設目錄是 WEB-INF/work/source 目錄。
# This is where the generated source(.java) will go
bowstreet.methods.sourceDirectory=${bowstreet.rootDirectory}/work/source
決定已編譯之方法的輸出目錄
WebSphere Portlet Factory Servlet 會將模型方法的已產生 Java 原始檔編譯至您可以指定的目錄。 預設為 WEB-INF/work/classes 目錄。
# This is where the compiled class will go. This should be in a place where the dynamic class loader can pick it up.
bowstreet.methods.targetDirectory=${bowstreet.rootDirectory}/work/classes
新增自己的建置器定義至 WebSphere Portlet Factory Designer
您可以新增一個以上的目錄, WebSphere Portlet Factory Designer 會從中載入建置器定義。
#In bowstreet.properties file
# classpath-like syntax (semi-colon delimited) for location of BuilderDef files
# default if unavailable is ${bowstreet.rootDirectory}/builders
bowstreet.location.builderdef.path=${bowstreet.rootDirectory}/builders
配置動態類別載入
您在 bowstreet.dynamic.class.load.path 內容中設定的值會決定 WebSphere Portlet Factory Designer 及 WebSphere Portlet Factory Servlet 將從中動態載入 Java 類別的一個以上目錄。 此內容位於 WEB-INF/config/bowstreet.properties 檔案中。
註: 動態載入的類別不可以在您的 Java 類別路徑上。

若要指定要從中動態載入類別的多個位置,請以逗號區隔每個路徑,以將它們附加到內容中,如下列範例所示:

#In bowstreet.properties file
bowstreet.dynamic.class.load.path=${bowstreet.rootDirectory}/work/classes,${bowstreet.rootDirectory}/work/my_classes
bowstreet.dynamic.class.load.checkTimestamp=true

如果設為 true,則 bowstreet.dynamic.class.load.checkTimestamp 內容會啟用動態類別載入器所載入之類別的時間檢查。 如果該內容設為 true 且類別發生變更,則會在下次建立實例時,動態重新載入該類別,不過前提是它要位於載入器類別路徑中,並且是要動態載入的其中一個受支援類別。

註: 由於效能原因,建議在開發環境中將 bowstreet.dynamic.class.load.checkTimestamp 內容設為 true,而在正式作業中將它設為 false
設定綱目參照
WebSphere Portlet Factory SOAP/WSDL 支援預設為指定 2001 版的「XML 綱目」,但是您可以藉由解除註解下面列出的其中一個內容,設定使用適當的參照:
# Uncomment these parameters to add 1999 and/or 2000/11 XMLSchema References into
# SOAP responses when using pre-Factory 5.9 SOAPPC and SOAPDOC URLs (not used by Axis)
#bowstreet.soap.schemaRef.1999=true
#bowstreet.soap.schemaRef.2000=true

例如:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:gcdXmlResponse xmlns:ns1="http://bowstreet.com/2002/03/models/xmethods/gcd">
<gcdreply><distance>2708.88</distance></gcdreply>
</ns1:gcdXmlResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
設定 SOAP 綱目位置
WSDL 文件中參照 SOAP 編碼結構的部分綱目不會總是指定 SOAP 編碼結構的 import 陳述式或 schemaLocation 屬性。 如果剖析失敗,則 WebSphere Portlet Factory 會自動新增 import 陳述式並重新剖析綱目。

您可以指定 WebSphere Portlet Factory 使用內容從中擷取 SOAP 編碼綱目的位置,預設設為:bowstreet.location.schemas

WSDL 及 SOAP 呼叫的 Proxy 支援
基礎 SOAP 及 HTTP 程式碼會同時針對 WSDL 擷取及離埠服務呼叫,使用標準 Java 內容 (http.proxyHosthttp.proxyPorthttp.proxyUserhttp.proxyPasswd)。 可以在 "server.properties" 檔案中設定這些值,或可以在應用程式伺服器的 JVM 指令行上設定內容 (-Dhttp.proxyHost=foo 等)。

WebSphere Portlet Factory 5.9 中,其他前置服務呼叫 Proxy 設定在「服務呼叫」建置器的「進階輸入」區段中可用。

配置綱目快取大小
快取「綱目」建置器所產生的綱目物件或「綱目」建置器的 API。 這可讓另一個執行緒或 Webapp 尋找相同的綱目,以存取沒有任何重新剖析額外負荷的快取物件。 然而,此快取會像所有快取一樣使用記憶體。 因此,需要限制快取的大小上限。

您可以使用下列內容:bowstreet.schema.maxCacheSize=,控制「綱目快取大小上限」。 預設快取大小上限是 50 個綱目物件。

配置 IBM WebSphere Portlet Factory 的主控台視窗

將除錯資訊傳送到 Eclipse 主控台視窗很有用。

傳回主控台的資訊可協助您疑難排解模型及應用程式的問題。

若要顯示 WebSphere Portlet Factory Designer 的主控台視窗,請執行下列步驟:

  1. 尋找用於啟動 WebSphere Portlet Factory Designer 的捷徑。

    WebSphere Portlet Factory 安裝程式會將 IBM WebSphere > Portlet Factory > Designer 捷徑新增至程式集功能表。

  2. 用滑鼠右鍵按一下捷徑,並按一下內容
  3. 在「內容」對話框的目標中,於可執行影像之後及指令上其他引數之前,插入下列值:
    -consolelog -debug
    例如:
    C:\eclipse\eclipsec.exe -consolelog -debug -vmargs -Xmx256m

這些旗標會顯示主控台視窗,系統會將在產生期間發生的所有除錯陳述式都傳送到這個視窗。

配置開發環境

您可以執行數個作業來配置 IBM WebSphere Portlet Factory 開發及執行期環境。

用於除錯的主控台視窗

您可以針對 IBM WebSphere Portlet Factory 執行的應用程式及 WebSphere Portlet Factory Designer,使用指令主控台。 指令主控台可讓您檢視程式碼中使用的任何 System.out.println() 陳述式。 建置器 Java 類別中的任何 System.out.println() 陳述式都會出現在 WebSphere Portlet Factory Designer 主控台中。 「鏈結的 Java 物件 (LJO)」中的任何 System.out.println() 陳述式或模型中的方法,都會出現在應用程式伺服器主控台中。

IBM WebSphere Portlet Factory 專案中搭配使用現有 JAR 檔案

您可以在正在開發的 Web 應用程式中,使用現有的 JAR 檔案。

在設計時期,您可以擁有需要存取的 API (例如,透過自訂建置器)。 或者,您可以藉由從建置器產生或建置器協調程式類別進行參照,來獲得 JAR (例如,從協力廠商軟體獲得)。

  1. 將 JAR 副本新增至下列 WebSphere Portlet Factory 專案目錄的其中之一。
    • WEB-INF/libWEB-INF/work/lib

      會在應用程式、入口網站伺服器或 mashup 上的執行時期使用 WEB-INF/libWEB-INF/work/lib 目錄。 WebSphere Portlet Factory 會動態載入這些目錄中的 JAR。 在開發期間這樣做很方便。

    • WEB-INF/clientLibs

      如果您僅要將專案中的 JAR 用於編譯或設計時期存取,且 JAR 已經可以在您的應用程式、入口網站伺服器或 mashup 上使用,請將該 JAR 放置於 WEB-INF/clientLibs。 此目錄主要用於對在應用程式伺服器上可用的 API 進行編譯。 在執行時期未在伺服器上載入及使用 WEB-INF/clientLibs 的任何類別。 將需要對其進行編譯的應用程式伺服器 JAR 放置於此目錄中,十分安全。

  2. 在「Eclipse 專案瀏覽器」中,用滑鼠右鍵按一下 WebSphere Portlet Factory 專案,並按一下內容 > Java 建置路徑
  3. 在專案對話框的「內容」中,按一下程式庫

    顯示畫面會顯示目前在專案之「Java 建置路徑」中的 JAR 檔清單。

  4. 按下列其中一個按鈕:
    • 新增 JAR (如果 JAR 位於專案結構中)
    • 新增外部 JAR (如果 JAR 位於專案結構外部)
  5. 在「JAR 選項」對話框中,導覽至適當的目錄,並選取要新增至專案的 JAR。
  6. 按一下「JAR 選項」對話框中的確定
  7. 按一下「內容」對話框中的確定

配置動態類別載入

您可以透過設定內容來配置動態類別載入。

  1. 導覽至專案的 WEB-INF/config 目錄,並尋找 bowstreet.propertiesoverride.properties 檔。

    如果 override.properties 檔不存在,請建立該檔案。

  2. 在文字編輯器中,開啟 override.properties 檔,並尋找下列兩個內容。
    • bowstreet.dynamic.class.load.checkTimestamp
    • bowstreet.dynamic.class.load.path
  3. 如果這兩個內容不在檔案中,請開啟 bowstreet.properties 檔,複製包含這些內容的字行,然後將其貼到 override.properties 檔中。
  4. 如下列範例指示,在 override.properties 檔中變更設定。
    bowstreet.dynamic.class.load.checkTimestamp=true
    bowstreet.dynamic.class.load.path=
    ${bowstreet.rootDirectory}/work/classes,
    ${bowstreet.rootDirectory}/work/lib
    註: 動態載入的類別不可在 Java 類別路徑上動態載入。
  5. 儲存並關閉 override.properties 檔。

這時就會啟用動態類別載入。 每次 WebSphere Portlet Factory Servlet 收到服務呼叫時,都會檢查類別檔時間戳記。 如果有更晚的時間戳記存在,則會載入新版本的類別。 一般而言,基於效能原因,在開發環境中 checkTimestamp 內容會設為 true,而在正式作業中則會設為 false。

關於配置動態類別載入

您可以配置 IBM WebSphere Portlet Factory Servlet,讓其動態載入鏈結的 Java 物件、設定檔集管理程式及重新產生類別。

通常, WebSphere Portlet Factory Servlet 只會在啟動時載入類別檔。 Java 型 Web 服務,或「鏈結的 Java 物件」建置器都可能會使用類別檔。 啟用動態類別載入可以確保服務或物件會呼叫可用類別檔的最新版本。

在一般作業模式中,每當應用程式伺服器啟動時,JVM 的預設 ClassLoader 就會載入類別路徑中的類別檔。 然而,如果在應用程式伺服器執行時變更類別檔 (例如,如果重新編譯 Java 檔案),則預設的 ClassLoader 就不會重新載入該類別。

在開發環境中,您可能需要更頻繁地重新載入類別。 但是您可能不想要 (或不可以) 在每次變更類別檔時,都重新啟動應用程式伺服器。 這時,動態類別載入就會很有用。

請注意,啟用動態類別載入會耗用效能。 啟用動態類別載入時,會針對模型對服務或鏈結物件類別的每個呼叫,檢查類別檔時間戳記。 因此,您應該只在開發環境中啟用動態類別載入,而在開發或正式作業環境中停用它。

註: 在開發/正式作業環境中,請確定所有服務類別檔都在 WebSphere Portlet Factory Servlet 的類別路徑中。

可以將 WebSphere Portlet Factory Servlet 配置為動態載入 Java 類別檔,而不需要重新啟動應用程式伺服器。 如果您共用開發 WebSphere Portlet Factory Servlet,且經常更新服務所使用的 Java 類別,就可能會這樣做。

註: 您的應用程式伺服器上可能可以使用動態類別載入,視安全性實作方式而定。

動態類別載入

bowstreet.dynamic.class.load.path 內容中指定的目錄,可以動態載入 Java 類別。

WebSphere Portlet Factory WebSphere Portlet Factory Designer 類別及 JAR 目錄

bowstreet.dynamic.class.load.path 內容的預設值是專案的 IBM WebSphere Portlet Factory WEB-INF/work/classesWEB-INF/work/lib 目錄。

下列目錄用於儲存 WebSphere Portlet Factory 專案及 Web 保存檔 (WAR) 檔案系統的 Java 類別及 JAR 檔:

WEB-INF/classes
WebSphere Portlet Factory 用於儲存類別檔的靜態目錄。 當參照類別時會載入類別,但不會檢查變更。 您需要重新啟動伺服器,以重新整理此目錄並查看類別檔變更。
WEB-INF/lib
WebSphere Portlet Factory 用於儲存 JAR 檔的靜態目錄。 在應用程式啟動時載入 JAR,但不會檢查變更。 您需要重新啟動伺服器,以重新整理此目錄並查看 JAR 變更。
WEB-INF/work/classes
WebSphere Portlet Factory Designer 用來儲存動態重複載入類別檔的目錄。 可以立即使用對類別檔的變更,而無需重新啟動 WebSphere Portlet Factory Designer 或伺服器。 如需相關資訊,請參閱類別載入如何運作
WEB-INF/work/lib
WebSphere Portlet Factory Designer 用來儲存動態重複載入 Jar 檔的目錄。 可以立即使用對 Jar 檔的變更,而無需重新啟動 WebSphere Portlet Factory Designer 或伺服器。 如需相關資訊,請參閱類別載入如何運作

WebSphere Portlet Factory 動態類別載入器會從 WEB-INF/work/classesWEB-INF/work/lib 資料夾載入類別。

在伺服器端, WebSphere Portlet Factory 動態類別載入器會將載入作業委派給 J2EE WAR 類別載入器。 此類別載入器會從 WAR 檔的 WEB-INF/classesWEB-INF/lib 資料夾載入類別,並將載入作業委派給應用程式伺服器的類別載入器。

WebSphere Portlet Factory Designer 端, WebSphere Portlet Factory 動態類別載入器會將載入作業委派給 WebSphere Portlet Factory WAR 類別載入器。 每個 WebSphere Portlet Factory 專案都有自己的「設計器」WAR 類別載入器,它會根據現行專案的「Eclipse Java 建置路徑」載入類別。 「設計器」WAR 類別載入器會使用「Eclipse Java 建置路徑」中的所有項目 (專案之 WEB-INF/work/classesWEB-INF/work/lib 資料夾下的那些項目除外)。 「設計器」WAR 類別載入器會將載入作業委派給 Eclipse 類別載入器。

委派載入作業可讓 WebSphere Portlet Factory 專案以在伺服器上運作的相同方式在「設計器」中運作。

您應該遵循下列準則。
  • 在專案的 WEB-INF/libWEB-INF/work/lib 資料夾中,放置應用程式所需且需要在 WAR 檔中套裝的 JAR 檔。
  • 針對應用程式所需但是在執行時期已於應用程式伺服器中可供使用 (因此不應在 WAR 檔中套裝) 的那些 JAR 檔,執行下列其中一個動作。
    • 將 JAR 檔放置在專案的 WEB-INF/clientLibs 資料夾中。
    • 請參照此類 JAR 檔作為專案之「Eclipse Java 建置路徑」中的外部 JAR 檔。
  • 無論如何,如果您將 JAR 檔新增至 WebSphere Portlet Factory 專案 (無論是在 WEB-INF/libWEB-INF/work/lib 還是在 WEB-INF/clientLibs 資料夾中),則會在專案的「Eclipse Java 建置路徑」中新增該檔案的參照。

類別載入如何運作

會編譯放置在專案 WEB-INF/work/source/ 樹狀結構中的 Java 原始碼,而輸出會儲存在專案 WEB-INF/work/classes 樹狀結構中。 此目錄的內容會動態載入,且不需要重新啟動 WebSphere Portlet Factory Designer 或伺服器,變更即可生效。 因此,任何 Java 來源變更都會立即出現在 WEB-INF/work/classes 中。 如果原始碼經常變更,此安排有助於開發作業。

當涉及 JAR 檔時,WEB-INF/work/lib 目錄在功能上等同於 WEB-INF/work/classes 目錄。

類別及 JAR 檔的使用要訣

  • 在進行開發期間,將類別及 JAR 檔置於 WEB-INF/work 目錄下。 當開發完成後,即可關閉開發機器上的動態類別載入,以增進應用程式效能。

    您可以將 WEB-INF\config\override.properties 檔中的下列內容設為 false,來停用動態類別載入:

    bowstreet.dynamic.class.load.checkTimestamp
  • 選擇性地建立另一個專案,以管理 WebSphere Portlet Factory Java 構件,並針對產生的類別建立 JAR 檔,然後您可以將其放置在 WebSphere Portlet Factory WEB_INF/work/lib 目錄中。
  • 使用 JAR 檔來分送建置器及所建立的其他 JAVA 型項目。

在 Eclipse 型 IDE 中存取 Javadoc

您可以在您的整合開發環境 (IDE) 中,存取 Java 程式碼中物件的 Javadoc。

  1. 請對選定 Java 物件執行下列其中一個動作。
    • 按下 F2 鍵,將簡要說明顯示為「工具提示」。
    • 按下 SHIFT+F2 鍵,顯示該物件的 Javadoc。

    如果沒有「工具提示」內容,或 IDE 顯示對話框,指出尚未設定文件位置,則可以設定對話框中所提及之 JAR 的 Javadoc Location 內容。 您可以為 IBM WebSphere Portlet Factory 所使用的 JAR 建立 Javadoc 存取。 對您知道具有相關 Javadoc 的任何其他 JAR 使用相同的程序。

  2. 啟動「套件瀏覽器」。
    1. 按一下視窗 > 顯示視圖 > 其他 > Java > 套件瀏覽器
  3. 在「套件瀏覽器」中,於您工作的專案下,導覽至 Web 應用程式庫 > factory.jar,用滑鼠右鍵按一下 JAR 檔項目,然後按一下內容
  4. 在「內容」對話框中,按一下 Javadoc 位置
  5. 設定 Javadoc URL
  6. Javadoc 位置路徑中,按一下瀏覽,並導覽至 WebSphere Portlet Factory 文件外掛程式目錄。

    例如:

    C:\Program Files\IBM\WebSphere Portlet Factory\Designer\
    eclipse\plugins\com.bowstreet.designer.doc_6.1.2\api

  7. 針對您電腦上已安裝的版本,選取適當路徑中的 api 資料夾,然後按一下確定
  8. 按一下驗證,以驗證 Javadoc 是否位於指定的位置。
  9. 在「內容」對話框中,按一下確定

Eclipse 型 IDE

IBM WebSphere Portlet Factory Designer 可與 Eclipse 型開發環境完全整合。

WebSphere Portlet Factory Designer 是下列 Eclipse 型整合開發環境 (IDE) 中的外掛程式:

  • Eclipse 3.x
  • IBM Rational Development Environment

Eclipse 型 IDE 的 WebSphere Portlet Factory 專案

下表說明 WebSphere Portlet Factory 專案的性質:

專案性質 說明
專案本質 WebSphere Portlet Factory 專案會使用 Java 專案本質。
專案內容 WebSphere Portlet Factory 專案包含 WebSphere Portlet Factory 可服務內容根目錄的所有內容。 例如,wpf.war 及其下層內容。
來源目錄 WebSphere Portlet Factory 專案會使用 WebSphere Portlet Factory 安裝的 WEB-INF/work/source 目錄作為來源目錄。 您可以指定其他目錄作為「來源目錄」,但是必須包含這個目錄。
建置目錄 指向 WEB-INF/temp 目錄,其中會編譯專案 Java 來源檔。 作為 WebSphere Portlet Factory Designer 外掛程式一部分併入的 Ant Script,會將此目錄中的類別複製到 WEB-INF/work/classes 目錄。
併入的程式庫 WebSphere Portlet Factory 專案包括 WebSphere Portlet Factory WEB-INF/lib 目錄中的所有 JAR 檔,以及 WEB-INF/clientlibs/servlet.jar 中的 JAR 檔。
外部工具 「Ant Script 複製類別」會複製編譯的 Java WEB-INF/work/classes 目錄。

WebSphere Portlet Factory 及 Eclipse IDE 日誌檔的位置

您可以在下列目錄中找到 WebSphere Portlet Factory Designer 的日誌檔:

eclipse/plugins/com.bowstreet.designer.core/log

您可以在 WebSphere Portlet Factory WEB-INF/logs 目錄中找到 WebSphere Portlet Factory 的日誌檔。

配置說明顯示

若要配置「說明」的顯示方式,請遵循下列步驟。

您可以下列兩種方式之一顯示「說明」:
說明視圖
這是預設的喜好設定。 這會在 Eclipse 視窗的右側開啟新的「Eclipse 視圖」。 然後,您可以將「說明視圖」移到任何位置,並將其定置於您選擇的位置。
作為蹦現資訊
此喜好設定會在單獨的最大的「說明」視窗中開啟「說明」。
  1. 開啟視窗 > 喜好設定... > 說明 > 開啟視窗環境定義說明
  2. 選取「說明」顯示喜好設定。 例如,選取在蹦現資訊中,即會在最大視窗中檢視「說明」。

配置修正套件通知

您可以配置 IBM 支援中心網站,以通知您最新的修正套件。

若要執行此作業,您需要 IBM ID 及密碼。 您可以在此程序期間進行登錄,以建立 ID 及密碼。 如果您已經訂閱修正套件通知,則您可以檢視及管理現行訂閱。

  1. WebSphere Portlet Factory Designer 中,按一下說明 > 顯示「我的通知」修正套件通知

    即會開啟瀏覽器視窗,其中顯示 IBM 技術支援網站中「我的通知」頁面的「訂閱」標籤。

  2. 輸入 IBM ID 及密碼。

    如果您沒有 IBM ID,請按一下登錄,以建立一個 ID。

  3. 在「訂閱」標籤中,指定系列產品(例如 WebSphere)、您的產品(例如 WebSphere Portlet Factory)、文件類型及遞送資訊。

    如此即會在「我的訂閱」標籤上建立您的訂閱。 該標籤顯示您的現行訂閱,並提供登錄以進行其他訂閱的方法。

變更 IBM WebSphere Application Server Community Edition (WAS CE) 中的 JRE

如果想要變更為另一個 JRE 版本或供應商,則需要執行這些步驟。

  1. 停止伺服器。
  2. WASCE_INSTALLED_DIR\bin\setenv.bat 檔案中,設定 WASCE_JAVA_HOME 變數以指向想要使用的 JRE。 您應該先檢查所支援版本及供應商的 WebSphere Application Server CE 文件,再進行這項變更。
  3. 啟動伺服器。 請注意,主控台視窗中所列的 JRE 版本現在會參照新的 Java 版本。

IBM WebSphere Portlet Factory 的範例

可以提供許多範例,以協助您開發 Web 應用程式。

產品 Wiki 保留了社群開發的範例。
http://www-10.lotus.com/ldd/pfwiki.nsf 
在 Wiki 歡迎使用頁面,標題快速鏈結下,按一下範例。 範例的文章依標題的字母順序列出,並且可以透過種類存取,例如,資料存取和服務。

IBM WebSphere Portlet Factory 的指導教學

如需查看不同特性、概念和「如何」的視訊示範,請遵循此鏈結 http://www-10.lotus.com/ldd/pfwiki.nsf/xpViewCategories.xsp?lookupName=Media%20Gallery

下列主題可協助您進一步瞭解如何在 WebSphere Portlet Factory 環境中開發及建置 Web 應用程式。

使用 IBM WebSphere Portlet FactoryIBM WebSphere Application Server CE 快速入門

此快速入門會引導您使用 WebSphere Application Server Community Edition (WAS CE),逐步建立專案及執行應用程式。

您可以使用 WebSphere Application Server CE 快速並輕鬆地開發及測試應用程式。 您可以在安裝 IBM WebSphere Portlet Factory 時,選擇安裝 WebSphere Application Server CE。

WebSphere Application Server Community Edition (WAS CE) 是一種以 Apache Geronimo 為基礎的開放程式碼 Java 2 Platform Enterprise Edition (J2EE) 應用程式伺服器。

建立 WebSphere Application Server CE 專案

請遵循下列步驟,建立與 WebSphere Application Server CE 搭配使用的基本專案。

  1. 按一下開始 > 所有程式 > IBM Websphere Portlet Factory > 設計器,啟動已安裝產品的 Eclipse 用戶端。 如果您看到歡迎使用頁面,請將其關閉。
  2. 從功能表中按一下檔案 > 新建 > WebSphere Portlet Factory 專案
  3. 輸入不含空格的專案名稱,例如 MyFirstProject。 在專案名稱中不允許包含空格及某些特殊字元。 按下一步
  4. 在「特性集」頁面中,展開指導教學與範例,然後選取建置模型製作建置器指導教學小組件選項,以安裝所有隨附的範例應用程式。 按下一步
  5. 伺服器配置對話框中,選擇 WAS CE 安裝隨附的「WASCE 應用程式伺服器」配置。 此配置指向本端安裝的 WebSphere Application Server CE 伺服器,每當您從 WebSphere Portlet Factory Designer 測試及執行應用程式時,就會使用它。
  6. 按一下完成以建立專案。
  7. 如果提示,則按一下,在 Eclipse 中開啟「 WebSphere Portlet Factory 視景」。
  8. 按一下,啟動 WebSphere Application Server CE 伺服器。
  9. 按一下,立即發佈專案。

使用 WebSphere Application Server CE 執行範例

請遵循下列步驟,利用您在建立 WebSphere Application Server CE 專案中建立的 WebSphere Application Server CE 專案檔來執行範例應用程式。 現在,您可以在伺服器上執行範例應用程式,以測試是否均已適當地配置所有項目。

  1. 在「專案瀏覽器」視圖中,將專案向下展開至 models 資料夾。 您在其他指導教學中建立的全部模型,都會儲存在此相同資料夾中。
  2. 在 models/samples/gettingstarted 資料夾中尋找 OrdersServiceConsumer 模型,然後按兩下以開啟它:
    models\samples\gettingstarted\OrdersServiceConsumer 
  3. 從功能表中按一下執行 > 執行身分 > 執行作用中模型,或按一下工具列上的「執行」圖示。
  4. 按一下執行,以執行模型。 WebSphere Portlet Factory Designer 執行 Web 瀏覽器,且會使用模型的 URL 來開啟模型。

如果全部配置都正確,則您會在瀏覽器中看到 Web 應用程式。 無需對此應用程式執行任何動作。 只要在瀏覽器中顯示應用程式,即可確認設定正確,且 WebSphere Application Server 正在執行此應用程式。

指導教學 – 建立 WebSphere Portlet Factory 專案

這是四個指導教學的第一個,介紹了 IBM WebSphere Portlet Factory 的許多強大特性。 在本指導教學中,您將瞭解如何建立 WebSphere Portal WebSphere Portlet Factory 專案。

對於著重介紹建立 WebSphere Application Server Community Edition (WAS CE) 專案的指導教學,請參閱「快速入門」 以取得搭配使用 IBM WebSphere Portlet Factory 與 IBM WebSphere Application Server CE 的資訊

使用這些指導教學

此指導教學集是新 WebSphere Portlet Factory 開發人員的重要起始點。 本指導教學四個部分的每個部分均需要 30 到 45 分鐘才能完成。 指導教學應該以下列順序完成,因為每個指導教學均基於前一個指導教學中取得的知識。 此外,完成這些指導教學之後,我們建議造訪 WebSphere Portlet Factory Wiki 上的 WebSphere Portlet Factory 學習導覽圖,以進一步增加 WebSphere Portlet Factory 學習經驗。

表 8.
指導教學順序 說明
建立 Web 應用程式專案 在本指導教學中,您將瞭解如何建立 Web 應用程式專案。
建立應用程式 在本指導教學中,您將建置簡式 "hello world" 應用程式,然後從該應用程式建立 Portlet。
建立資料庫應用程式 在本指導教學中,您將使用「SQL 表格建立」建置器,根據範例資料庫來建立服務提供者模型,然後使用「服務消費者」建置器及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。
在您的新應用程式中使用設定檔作業 繼續 "hello world" 應用程式指導教學,將設定檔作業的功能新增至您的應用程式。

您將學習的內容

安裝 IBM WebSphere Portlet Factory 之後,建立 Portlet 的首要步驟是利用 WebSphere Portlet Factory Designer 建立 WebSphere Portlet Factory 專案。 此專案將成為 Portlet 或應用程式的基礎,且含有發佈 Portlet 或應用程式所需的一切構件。

在這個指導教學中,您會建立 WebSphere Portlet Factory 專案、配置該專案以在 IBM WebSphere Portal 環境中使用,並執行範例以確保設定正確無誤。 完成這些作業之後,您就可以準備完成其他指導教學,學習使用 WebSphere Portlet Factory 來開發 Web 應用程式及 Portlet 的基本觀念。

開始之前

若要執行指導教學,必須進行下列設定。

  • 若要測試 Portlet,您需要存取 WebSphere Portal 的本端或網路安裝。 若要發佈專案,則 WebSphere Portal Server 必須在執行中。 雖然可能有其他配置方式,但此指導教學中的指示會假設您在本端已安裝 WebSphere Portal Server,細節如下所述。 如果您沒有入口網站,則可以在本端開發伺服器上測試應用程式,但是無法完成入口網站的特定步驟。
  • WebSphere Portlet Factory Designer 必須安裝在本端。 WebSphere Portlet Factory Designer 是用於建立 Web 應用程式及 Portlet 的開發環境。 它要安裝到一個整合開發環境 (IDE),如 Eclipse 或 Rational Application Developer (RAD)。 如果尚未安裝 Eclipse 或 RAD,則可以在 WebSphere Portlet Factory 安裝程序中安裝 Eclipse。
  • 您必須能夠存取應用程式伺服器,才能在開發應用程式時從「設計器」執行它們。 WebSphere Portal 會在 WebSphere Application Server 的頂層執行,所以如果您已安裝了 WebSphere Portal,就可以使用它的 WebSphere Application Server 實例作為測試環境。 您還可以使用 WebSphere Application Server Community Edition (WAS CE) 或 Tomcat。

建立專案

  1. 啟動 WebSphere Portlet Factory Designer。 如果您看到歡迎使用頁面,請將其關閉。
    註: 使用 RAD 時,應將工作區放在檔案系統的最上層附近 (例如,C:\factory\my_projects\),以避免路徑/檔案名稱超過 Windows 256 個字元的限制。
  2. 透過選擇視窗 > 開啟視景 > 其他... > WebSphere Portlet Factory,切換至 WebSphere Portlet Factory 視景。
  3. 透過完成這些步驟,建立 WebSphere Portlet Factory Web 應用程式專案
    1. 從功能表中,選擇「檔案 > 新建 > WebSphere Portlet Factory 專案」。 您會在精靈的引導協助下建立專案。
      註: 請務必從清單中選擇「WebSphere Portlet Factory 專案」,而非「專案」。
    2. 針對「專案名稱」步驟,輸入 MyFirstProject (不含任何空格)。 在專案名稱中不允許包含空格及某些特殊字元。 專案命名完成時,按下一步
  4. 新增「指導教學及範例」特性集:
    1. 在「特性集」對話框中,會列出所有可用的特性集。 選擇指導教學及範例,以選取該特性集內的所有元件。 這個選項會新增要執行 WebSphere Portlet Factory Designer 所附指導教學時,需要的檔案。
    2. 下一步繼續。
  5. 瞭解測試伺服器配置。

    您將僅需要建立一個「伺服器配置」。 此伺服器配置會將您的專案發佈至 Application Server,以在開發期間測試專案,並且會將 Portlet 發佈至該處視圖的「入口網站」。

    開發人員可以設定許多不同的配置。 最常用的配置類型如下:

    表 9. 入口網站配置的一般類型
    配置類型 說明
    本端安裝的「入口網站」及「應用程式」伺服器 您已將 WebSphere Portal Server 及內嵌的 WebSphere Application Server 安裝於本端。 建立新的伺服器配置時,對重要資料夾 (例如應用程式伺服器的 installedApps 資料夾) 的參照將指向本端硬碟。

    這個配置非常容易使用,但開發機器的功能必須非常強大,最少需要 2 GB 的 RAM 才能達到可接受的效能層次。

    遠端安裝的「入口網站」及「應用程式伺服器」 WebSphere Portal Server 及內嵌的 WebSphere Application Server 均安裝在另一台可透過網路存取的機器上。
  6. 建立伺服器配置。 如果您現在有可運作的配置,則可以使用它。 否則,則必須建立新配置。
    1. 按一下專案內容視窗中的建立伺服器配置
    2. 選擇對於您的環境而言正確的伺服器配置,然後按一下確定。 即會顯示「編輯伺服器配置」對話框。
    3. 依預設會載入配置的配置名稱及說明。

      使用線上說明,以完成環境的配置。

    4. 如果可以在所選環境中使用,請按一下建立測試入口網站網頁 > 多個頁面
    5. 按一下測試伺服器連線,以驗證 WebSphere Application Server 的連線。 如果收到錯誤,則請確定伺服器正在執行中,然後再按一下測試伺服器連線
    6. 按一下確定繼續。
  7. 按一下完成時,將會依據您所選取的明細和特性來建立專案。 系統會提示您您要立即發佈專案嗎?。 按一下

    如果您使用 WebSphere Portlet Factory 6.x 的本端安裝,則預設為啟用 WebSphere Application Server 安全。 所以在 WAR 檔建立期間,可能會提示您輸入認證。 請使用 WebSphere Application Server 管理者認證,而非 WebSphere Portal 管理者認證。 同時,在讓發佈處理程序自動執行之前,請務必等待這個提示。 如果您忽略它,則提示會逾時,將不會自動發佈 WAR 檔。 在此情況下,您還是可以透過「WebSphere 管理主控台」手動安裝和配置 WAR 檔。

  8. 如果伺服器是遠端伺服器,或者您已選擇不針對應用程式使用「發佈應用程式」功能,則會在問題視圖中看到一則錯誤訊息。 此訊息指出 WebSphere Portlet Factory 開發 WAR 位置不存在。 如果「發佈應用程式」功能因某些原因而失敗 (例如伺服器未執行),您也會看到此訊息。 如果收到這個錯誤,您將需要透過「WebSphere Portal 管理主控台」手動發佈 Portlet WAR 檔。

測試設定

現在您已建立 WebSphere Portlet Factory 專案,要在伺服器上執行範例應用程式來測試所有項目是否均已適當地配置。

  1. 藉由開啟「指導教學及範例」特性集中的一個範例模型,來測試您的配置,步驟如下所示:
    1. 在「專案瀏覽器」視圖中,展開 models\tutorials 資料夾。 您在其他指導教學中建立的全部模型,都會儲存在此資料夾中。
    2. 在 tutorials 資料夾內尋找 Tutorial_MyFirstPortlet.model,並按兩下以對其進行開啟:\solutions\basics\Tutorial_MyFirstPortlet.model
  2. 建立執行配置
    1. 從功能表中,選擇執行 > 執行...,或按一下工作區上方的 執行圖示,綠色背景的白色向右箭頭。 選取當建立「 WebSphere Portlet Factory 模型」專案時,所建立的預設執行配置。 這是現行作用中模型。
    2. 如果全部配置都正確,則您應該會在預設瀏覽器中看到將顯示「指導教學基礎 - Hello World!」的 Web 應用程式. 無需對此應用程式執行任何動作。 只要在瀏覽器中看到它,即可確認設定正確,且 WebSphere Application Server 正在執行此應用程式。
  3. 清理 Java 編譯器訊息及警告 (選用)
    1. 切回到 WebSphere Portlet Factory WebSphere Portlet Factory Designer。 在工作區底端的「問題」標籤中,您可能會看到關於未使用之區域變數的數則警告。 這些訊息指出,「指導教學及範例 - 建置器」特性集的範例 Java 檔案中存在不必要的程式碼。 如果完成稱為「建立自訂建置器」的指導教學,則會使用這些變數。 如果您想要暫停這些警告,請繼續此步驟。 否則,請跳至步驟 5。
    2. 請遵循下列步驟,暫停不必要的程式碼警告。
      1. 從功能表中選擇視窗 > 喜好設定,以啟動「喜好設定」對話框。
      2. 在此對話框的左側,選取 Java > 編譯器 > 錯誤/警告
      3. 在右側應該有數個收合的區段。 展開標示為「不必要程式碼」的區段。
      4. 此區段中包含數個值設為「警告」的欄位,例如從未讀取「區域變數」。 將此區段中的所有欄位設為忽略
      5. 按一下確定,以儲存這些變更。
      6. Eclipse 現在將需要重建所有目前已開啟的專案。 當提示您執行完整建置以套用這些變更時,請按一下。 重新建置程序完成後,警告應該會消失。
  4. WebSphere Portal 中測試 Portlet 模型,以確保 Portlet 已適當地發佈。
    1. 以管理者身分或有權建立頁面及新增 Portlet 至頁面的使用者身分,登入 WebSphere Portal
    2. 將標題為「指導教學基礎 - 我的第一個 Portlet 解決方案」的 Portlet,新增至新的或現有的頁面。 如果在建立專案時,一切作業均正確無誤,則應該一下子就能看到這個 Portlet。 完成後,關閉頁面管理。
    3. WebSphere Portal 開啟到含有這個新 Portlet 的頁面,並檢查該 Portlet。 它應該會與您在本節開頭所測試的 MyFirstPortlet_Solution 模型類似。
    4. 如果您對 Portlet 的發佈覺得滿意,請關閉 WebSphere Portal
  5. 選擇功能表的檔案 > 全部關閉,關閉 WebSphere Portlet Factory Designer 中所有開啟的模型及檔案。

學習的課程及後續步驟

恭喜! 您已順利建立 WebSphere Portlet Factory 專案,並執行確認配置的範例應用程式。 您所建立的 WebSphere Portlet Factory 專案將含有您建立的所有模型,以及開發、發佈及測試 WebSphere Portlet Factory Web 應用程式及 Portlet 所需的所有支援程式碼及構件。

您現在可以繼續學習如何使用 WebSphere Portlet Factory Designer,來開發 Web 應用程式及 Portlet。 首先從建立應用程式的指導教學開始。

指導教學 – 建立您的第一個應用程式

這是四個指導教學的第二個,介紹了 IBM WebSphere Portlet Factory 的許多強大特性。 在本指導教學中,您將建置簡式 "hello world" 應用程式。

使用這些指導教學

此指導教學集是新 WebSphere Portlet Factory 開發人員的重要起始點。 本指導教學四個部分的每個部分均需要 30 到 45 分鐘才能完成。 指導教學應該以下列順序完成,因為每個指導教學均基於前一個指導教學中取得的知識。 此外,完成這些指導教學之後,我們建議造訪 WebSphere Portlet Factory Wiki 上的 WebSphere Portlet Factory 學習導覽圖,以進一步增加 WebSphere Portlet Factory 學習經驗。

表 10.
指導教學順序 說明
建立 Web 應用程式專案 在本指導教學中,您將瞭解如何建立 Web 應用程式專案。
建立應用程式 在本指導教學中,您將建置簡式 "hello world" 應用程式,然後從該應用程式建立 Portlet。
建立資料庫應用程式 在本指導教學中,您將使用「SQL 表格建立」建置器,根據範例資料庫來建立服務提供者模型,然後使用「服務消費者」建置器及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。
在您的新應用程式中使用設定檔作業 繼續 "hello world" 應用程式指導教學,將設定檔作業的功能新增至您的應用程式。

您將學習的內容

開發人員會透過建立模型、將建置器新增至這些模型、執行您剛建立的應用程式,來建置應用程式,然後從該應用程式建立 Portlet。

設定需求

若要執行指導教學,必須進行下列設定。

  • 您需要已建立及已發佈專案。 專案必須包括「指導教學及範例 / 應用程式」特性集。 在稱為「建立 Web 應用程式專案」的指導教學中,對建立專案進行詳細說明。
  • WebSphere Portal Server 必須在執行中。

建立第一個專案

  1. 在指導教學的這個部分中,我們將建立新的 WebSphere Portlet Factory 模型。
    1. 啟動 WebSphere Portlet Factory Designer。
    2. 開啟您在「建立 Web 應用程式專案」指導教學中建立的 MyFirstProject WebApp 專案。
    3. 選擇檔案 > 新建 > WebSphere Portlet Factory 模型。 此指令將呼叫精靈以協助您建立新模型。
    4. 選擇應在其中建立此模型的專案。 MyFirstProject WebApp 專案應強調顯示。 按下一步繼續。
    5. 建立新模型時,您可以從啟動器模型清單中進行選擇。 在「選取模型」頁面中,從Factory 啟動器模型種類中選擇 Main and Page,再按下一步。即會顯示頁面設定對話框。
    6. 因為您已選擇「Main and Page」啟動器模型,則可以選擇指定第一個頁面的內容。 您可以選擇現有的 HTML 檔案或選擇簡式網頁,以取得非常基本的 HTML 頁面。 選擇簡式頁面,再按下一步。 即會顯示儲存新模型對話框。
    7. 模型會儲存在專案的 models 資料夾之下。 由於此專案已包含「範例及指導教學」特性集,因此部分指導教學相關的資料夾是您必須使用的。 展開 models 資料夾,並選擇名稱為 models\tutorials 的資料夾,然後輸入 MyFirstPortlet,並按一下「完成」。 現在, WebSphere Portlet Factory Designer 將建立新的模型並將其開啟。
    什麼是模型?
    模型只是一組建置器呼叫,這些呼叫會依次產生代表應用程式之行為、結構、資料及呈現方式的應用程式元件。 實際上,模型只是包含一系列建置器呼叫的 XML 檔案。

    當您要建立新的應用程式時,您將會建立新的模型,然後將適當的建置器呼叫新增至該模型中。

  2. 檢查並執行新模型
    1. 在工作區的左下角,有一個標示為大綱的標籤,其中包含模型使用的所有建置器或模型的「建置器呼叫清單」。 模型是由建置器所建構的,且模型中的每個建置器都由建置器呼叫來代表。 在建置器呼叫清單中按兩下建置器呼叫,即可對其進行編輯。
      什麼是建置器?
      建置器是具有高度調適性的軟體元件,會針對特定應用程式功能產生程式碼 (包括 Java、JSP 及 XML)。 例如, WebSphere Portlet Factory 提供的建置器可以將按鈕置於網頁中,就像自動建立程式碼那樣簡單。 WebSphere Portlet Factory 還包括許多功能強大的建置器,例如「資料服務使用者介面」建置器,可用來建立所有必要的變數、JSP、綱目及 Java 程式碼,以建立擷取及顯示資料來源(資料庫、Lotus Domino、Web 服務、變數等)中資料的完整應用程式。

      建置器具有易於使用之類似於精靈的使用者介面,可輕鬆快速地開發應用程式。 不過,建置器的功能較精靈強大得多,因為您可以在整個開發程序中反覆使用建置器。 與提供執行一次「精靈」的其他 IDE 不同,透過 WebSphere Portlet Factory,您一律可以返回,然後變更建置器輸入值,並立即更新整個應用程式。

      在背後,建置器由執行適當自動化作業(如針對按鈕建立 JSP)的 Java 類別、定義建置器輸入的 XML 文件(建置器定義)以及設計時間使用者介面性質組成。

    2. 在建置器呼叫清單中,按兩下名稱為 main 的動作清單建置器呼叫。 建置器呼叫編輯器將在右側開啟,並顯示該建置器輸入的現行值。 如您所看到的那樣,在動作清單中只有一個元素。 該動作會觸發名稱為 page1 的頁面,以進行顯示。
    3. 現在,在建置器呼叫清單中,按兩下名稱為 page1 的「頁面」建置器呼叫。 其中包含具有具名 <span> 標籤的某些非常基本的 HTML。 Portlet Factory 使用具名標籤(具有名稱屬性的 HTML 元素),以尋找頁面上應該放置產生之使用者介面標記的位置。此時,此頁面只顯示您可以在「頁面內容」欄位中看到的簡式 HTML。
    4. 在工作區的頂端,按一下就在功能表下方圖示列中的 右移鍵圖示,執行該模型。 即會啟動瀏覽器,並顯示此簡式應用程式(其中包含標題為「預設測試頁面」的簡式頁面)。
    5. 關閉瀏覽器,然後回到 WebSphere Portlet Factory Designer。
  3. 在指導教學的這個部分中,我們將建構基礎頁面佈置
    1. 「應用程式樹狀結構」中顯示的內容為何?

      「應用程式」樹狀結構顯示建置器在現行模型中產生的所有構件。 它可讓您選取這些構件,以顯示物件的詳細資料。 這些構件可以是 Java、XML、HTML 及 JSP 等。有多種方式可以查看物件的詳細資料。 來源標籤顯示所建立內容的文字表示法,而設計標籤顯示物件的視覺化表示法。 設計標籤與執行應用程式時在瀏覽器中呈現的內容並不完全相同,但是它可協助預覽建立應用程式時的許多變更。 除了 HTML 頁面中的靜態文字之外,設計標籤還會顯示目前其中沒有任何內容的具名標籤。 目前,設計標籤僅適用於頁面。

      如果看不到「應用程式樹狀結構」,請確定您已開啟並選取 MyFirstPortlet 模型。 如果並未開啟及選取,請在專案瀏覽器視窗中尋找 MyFirstPortlet 模型,並按兩下它

      嘗試在「應用程式樹狀結構」中選擇不同元素,並監視強調顯示之「來源」及「設計」視圖中對應的元素。

    2. 將「文字」建置器呼叫新增至模型,以取代名稱為 namedTag 的 <span> 標籤。
      1. 在「應用程式樹狀結構」中選取 page1
      2. 在「應用程式樹狀結構」上方,按一下 建置器挑選器圖示,以顯示可新增至此模型的建置器清單。 此清單顯示所有可用的建置器及其建置器種類。 因為許多建置器都可以修改頁面,所以會顯示許多選項。
      3. 搜尋並選取「文字」作為要新增的建置器呼叫類型,然後按一下確定。 這個新的建置器呼叫將在右邊窗格中,顯示建置器呼叫編輯器。
      4. 此建置器呼叫的「頁面位置」區段包含數個輸入。 「頁面」及「標籤」包含選項的下拉清單。 針對頁面欄位選擇 page1,針對標籤欄位選擇 namedTag。 現在,此「文字」建置器將瞭解到要使用您在文字輸入中指定的任何文字表示式,取代名稱為 namedTag 的具名 <span> 標籤內容。
      5. 您可以從標籤為文字的輸入位置輸入此建置器呼叫將新增至頁面中的文字。 尋找此輸入,並進入指導教學基礎 - Hello World!
      6. 按一下確定
      7. 按一下設計標籤,查看新增字組指導教學基礎 - Hello World!的文字建置器 . 重新執行模型並在 Web 瀏覽器中進行檢視。 此時,您將看到詞組指導教學基礎 - Hello World! 已取代靜態文字,"使用具名標籤取代頁面上建置器呼叫的結果".
      註: 您正在使用文字建置器,非常快速地瞭解 WebSphere Portlet Factory。 在您的一般開發程序中,您將要使用「資料頁面」建置器及頁面自動化,來實際利用 WebSphere Portlet Factory 的全部功能。 我們將說明如何在遵循此程序的指導教學中使用這些特性

在 Portlet 中啟用應用程式

此時,您已建立應用程式,但尚未使模型成為 Portlet。 現在,將讓模型在 WebSphere Portal 架構內作為 Portlet 執行。 此作業很容易完成,因為具有此目的的建置器:「Portlet 配接器」建置器。

什麼是「Portlet 配接器」建置器?

「Portlet 配接器」建置器會自動配置模型,以便模型可作為 WebSphere Portal 中的 Portlet 運作。 在此類型的建置器呼叫中,您可以輸入 Portlet 的有用資訊(例如名稱、標題、說明及選擇性的 Portlet 說明檔名稱)。 當入口網站管理者管理 Portlet 並將其套用至入口網站網頁時,他們將會看到名稱、標題及說明。 使用者可以透過 Portlet 中的 Portlet 標題列,存取說明檔。

我們將設定檔作業留在更進階的指導教學中,但是在這裡指出「配置」及「編輯」頁面的預設使用者介面 (UI) 非常普通。 您可以在個別 HTML 頁面或 WebSphere Portlet Factory 模型中個別建立這些頁面的更多豐富型 UI。 在「Portlet 配接器」建置器呼叫中可以參照這些頁面及模型,且建置器會自動將其新增至 Portlet 中。

您會將「Portlet 配接器」建置器呼叫新增至 MyFirstPortlet 模型,並透過將 Portlet 新增至入口網站網頁來測試您的工作。

  1. 啟用模型作為 Portlet 運作。
    1. 開啟 MyFirstPortlet 模型。
    2. 按一下 建置器挑選器圖示,將新的建置器呼叫新增至模型。 如果尚未選擇,請選擇種類全部
    3. 選擇「Portlet 配接器」建置器,然後按一下確定
    4. 使用下列表格,可以取得要提供給此建置器呼叫各種輸入值的詳細資訊。 輸入這些值之後,按一下確定
      表 11. Portlet 配接器建置器輸入
      輸入名稱 輸入這個給定輸入的值
      名稱 tutorial_basics
      Portlet 標題 指導教學基礎 – Portlet
      Portlet 說明 示範核心概念的簡式範例
    5. 按一下確定
    6. 儲存模型。
    7. 用滑鼠右鍵按一下專案名稱,然後選擇發佈應用程式。 選取「入口網站伺服器配置」,然後按一下確定。 此作業的完成可能需要一段時間。
    8. 如果伺服器配置設為建立測試入口網站網頁,則您可以繼續進行步驟 3.f

    為何重新發佈 Portlet WAR?

    在之前的指導教學中建立專案時,會建立 Portlet「Web 應用程式保存檔」或 WAR。 對專案中的模型及設定檔集執行變更時,這些變更會自動在入口網站伺服器上發佈。

    不過,模型的部分變更需要重新發佈 Portlet WAR。 其中一個變更是將「Portlet 配接器」建置器新增至模型。 為了讓入口網站架構看見新的 Portlet,必須使用新的 Portlet WAR 取代入口網站伺服器上的 Portlet WAR。 在 WebSphere Portlet Factory Designer 中重新發佈現有的 Portlet WAR,也會自動發佈新的 WAR 來取代舊的 WAR。

  2. 建立 WebSphere Portlet Factory 工作入口網站網頁。
    1. 按一下動作鏈結,從動作下拉功能表中選取並按一下編輯頁面
    2. 透過按一下現有頁面標籤旁邊的「新頁面」鏈結,建立新的最上層頁面標籤。
    3. 將「指導教學範例」鍵入至顯示的標題輸入方框中。
    4. 按下 Enter 鍵,或者按一下輸入方框外以建立標籤。
  3. 將 Portlet 新增至頁面。
    1. 按一下動作鏈結;從「動作」下拉功能表中選取並按一下「編輯頁面」
    2. 按一下自訂按鈕
    3. 選取所有 > 瀏覽內容,然後在搜尋全部輸入方框中,輸入指導教學基礎
    4. 按兩下指導教學基礎 - 我的第一個 Portlet,並按一下新增至頁面按鈕。
    5. 按一下儲存並結束
    6. 按一下指導教學範例標籤
    7. 導覽至「指導教學/基礎」,以檢視內含的 "Hello World" Portlet。
  4. 建立「基礎」頁面,並新增 MyFirstPortlet
    1. 按一下「指導教學」頁面的鏈結。 建立名為基礎的新頁面。按一下確定,以儲存頁面。
    2. 按一下「基礎」頁面詳細資料旁邊一行上的編輯頁面佈置圖示。即會顯示編輯佈置頁面。
    3. 按一下新增 Portlet 圖示。
    4. 使用搜尋功能,在清單中尋找「指導教學基礎 – Portlet」Portlet。
    5. 選取 Portlet 旁邊的勾選框,並按一下確定,然後按一下完成以儲存您的變更。
    6. 按一下首頁標籤,然後按一下 WebSphere Portlet Factory 標籤
    7. 導覽至「指導教學/基礎」,以檢視內含的 "Hello World" Portlet。

學習的課程及後續步驟

WebSphere Portlet Factory 是用於開發 Portlet 及 J2EE 相容 Web 應用程式的強大工具。 您可以從建置器建構應用程式及 Portlet。 模型中的每個建置器呼叫都對 WebSphere Portlet Factory 將產生之應用程式的 XML 表示法有所貢獻。 透過重新產生程序,可以產生應用程式。

現在,您已準備完成 指導教學 - 建立資料庫應用程式指導教學,其中您將根據範例資料庫,使用「SQL 資料服務」建置器,建立服務提供者模型,然後使用「服務消費者」及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。

指導教學 - 在您的新應用程式中使用設定檔作業

繼續 "hello world" 應用程式指導教學,將設定檔作業的功能新增至您的應用程式。

使用這些指導教學

此指導教學集是新 WebSphere Portlet Factory 開發人員的重要起始點。 本指導教學四個部分的每個部分均需要 30 到 45 分鐘才能完成。 指導教學應該以下列順序完成,因為每個指導教學均基於前一個指導教學中取得的知識。 此外,完成這些指導教學之後,我們建議造訪 WebSphere Portlet Factory Wiki 上的 WebSphere Portlet Factory 學習導覽圖,以進一步增加 WebSphere Portlet Factory 學習經驗。

表 12.
指導教學順序 說明
建立 Web 應用程式專案 在本指導教學中,您將瞭解如何建立 Web 應用程式專案。
建立應用程式 在本指導教學中,您將建置簡式 "hello world" 應用程式,然後從該應用程式建立 Portlet。
建立資料庫應用程式 在本指導教學中,您將使用「SQL 表格建立」建置器,根據範例資料庫來建立服務提供者模型,然後使用「服務消費者」建置器及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。
在您的新應用程式中使用設定檔作業 繼續 "hello world" 應用程式指導教學,將設定檔作業的功能新增至您的應用程式。

您將學習的內容

在本指導教學中,您會將設定檔作業新增至應用程式。 設定檔作業可讓 WebSphere Portlet Factory 透過提供針對各部分應用程式的幾組替代值,以動態建置數個版本的應用程式。

建立設定檔集,並將設定檔作業套用至「應用程式」

WebSphere Portlet Factory 的其中一個最強大功能是可以將模型與稱為設定檔作業的概念一起使用,以藉由將不同的預先定義參數集與相同的程式碼庫組合,來產生相同應用程式的多個版本。 在指導教學的這個部分中,將為一組建置器輸入建立新的設定檔集。 針對已進行設定檔作業的建置器輸入,設定檔集包含兩組不同的值。 每組值都會讓應用程式的行為方式不同。 完成之後,您將具有兩個版本的應用程式,每個應用程式都會藉由切換選項並重新執行模型,而得到呼叫。

  1. 為「文字」建置器建立設定檔集。
    1. 讓我們回到您在「建立應用程式」指導教學中使用的 MyFirstPortlet 模型,尋找名稱為 namedTag 的「文字」建置器呼叫,並在「設計」視圖或建置器呼叫清單中按兩下該呼叫,就可以開啟它。 該建置器呼叫應顯示在建置器呼叫編輯器的右側。
    2. 尋找名稱為「文字」且值為指導教學基礎 – Hello World!的建置器輸入。 按一下 設定檔圖示,以對啟用此建置器輸入進行設定檔作業。
      這裡發生了什麼?
      第一次對模型 WebSphere Portlet Factory 中的啟用建置器輸入進行設定檔作業時,會為您建立設定檔集,其模型名稱後面接著字尾 "ps",作為隱含建立的設定檔集名稱。 例如,對於模型 MyFirstPortlet,Designer 會自動建立名為 MyFirstPortletps 的設定檔集。
    3. 按一下建立項目,將名稱變更為文字,並將提示變更為要顯示的文字,然後在完成時按一下確定
    4. 按一下建立設定檔,新增「預設」設定檔之外的第二個設定檔。 將此設定檔命名為 MyFirstPortletAlternateView,然後按一下確定。 對於設定檔值,請輸入設定檔作業指導教學 - 替代視圖
    5. 完成後,按一下確定
    6. 此時,尚未儲存建置器呼叫變更。 按一下檔案 > 儲存,儲存變更。
  2. 套用設定檔並測試應用程式。
    1. 套用 MyFirstPortletps 設定檔之前,重新執行模型以查看「應用程式」中出現的值。 此時,應該沒有任何變更,且應用程式的行為應與前次測試它時一樣。
    2. 關閉瀏覽器以回到 WebSphere Portlet Factory Designer,並查看工作區的底端區段。 將會出現具有標示為「問題」、「作業」及「套用的設定檔」的畫面。 (如果未顯示這些標籤,請選擇視窗 > 重設視景)。按一下套用的設定檔標籤。
    3. 套用的設定檔標籤中,有一個下拉清單,其中包含 MyFirstPortletps 設定檔集中所有設定檔的名稱。 此設定檔集會出現在此標籤中,因為在此模型中具有與該設定檔集中設定檔項目相關聯的建置器輸入。 選擇清單中的 MyFirstPortletAlternateView,然後按一下套用按鈕。

      現在會發生什麼?

      藉由選擇 MyFirstPortletAlternateView 設定檔並進行套用, WebSphere Portlet Factory Designer 會在其執行模型並起始稱為重新產生的程序時,指定明確設定檔。 重新產生期間,會組合所選設定檔提供的模型及輸入,以建立新版本的應用程式。

      您可以在「設計」視圖及「應用程式樹狀結構」視圖中查看應用程式的兩個變式。 當您在兩個設定檔之間切換並按一下套用按鈕後,您可以看到應用程式中的變更。 例如,如果您展開「應用程式樹狀結構」至 WebApp > 頁面 > page1,然後按一下 page1。 在右側,您將看到一些 <div> 標籤,其內容由靜態文字、檔名,以及 JSP Scriptlet 和表示式取代。

    4. 執行模型以查看變更。 此時,您應看到 MyFirstPortletAlternateView 設定檔中的文字值,而非 MyFirstPortletps 設定檔集中的「預設」設定檔。
  3. 新增「影像」建置器,並對其進行設定檔作業,以便與 MyFirstPortletps 設定檔集搭配使用。

    在此步驟中,您將新增「影像」建置器,並使用設定檔作業來判斷何時應啟用或停用此建置器。 停用的建置器對產生的應用程式沒有任何用處。 將建置器的啟用/停用值與設定檔項目相關聯,可讓重新產生僅根據重新產生時套用的設定檔來自動新增或刪除建置器。

    1. WebSphere Portlet Factory Designer 中,新增「影像」建置器至模型。 使用下列表格,可以指派其輸入:
      表 13. 影像建置器輸入
      輸入名稱 輸入這個給定輸入的值
      位置技術 相對於具名標籤
      頁面 (Page) page1
      標籤 namedTag
      放置 之後
      新標籤名稱 imgTag
      影像來源 按一下此欄位右側的 省略符號圖示,以啟動參照選擇器。 按一下選擇檔案標籤,並選擇 /samples/tutorials/images/tutorial_basics_image.jpg,然後按一下確定
    2. 使用此處新增的影像執行模型,以確定其在進行設定檔作業之前,處於工作狀態。
    3. 在建置器呼叫編輯器內,查看「影像」建置器呼叫的頂端,並按一下稱為內容的區段,以將其展開。 您會看到名稱為啟用建置器的輸入。 按一下 設定檔圖示,以對啟用此建置器輸入進行設定檔作業。 與其他設定檔項目一樣,使用建立項目,並將提示變更為顯示影像,然後將使用者介面類型設為「勾選框」,並將「勾選框後面的標籤」欄位編輯為「我的勾選框」。 按一下確定。 在 Portal 中進行自訂(配置要使用的設定檔)時,會顯示設定檔項目的使用者介面類型。
    4. 針對此影像建置器呼叫啟用設定檔項目,將設定檔值設為不勾選的「預設」設定檔。 編輯「勾選框後面的標籤」欄位,並移除文字「我的勾選框」。 按一下確定
  4. 重新測試設定檔,以確定每個項目都在工作中。
    1. 使用套用的設定檔標籤,套用 Default 設定檔並執行應用程式。 在 Web 瀏覽器中,您應看到應用程式的 Default 版本。 此版本不應顯示影像檔。
    2. 現在,套用 MyFirstPortletAlternateView 設定檔,並重新執行應用程式。 此時,您應看到影像檔。
  5. 開啟名為 "tutorial_basics" 的「Portlet 配接器」建置器。
  6. 在「Portlet 配接器」建置器呼叫編輯器中,透過為 MyFirstPortletps 設定檔集選擇在編輯預設值中顯示個別設定檔值,啟用值自訂作業。 在建置器呼叫編輯器中,按一下確定,以套用變更,然後儲存模型。
  7. 重新發佈應用程式。
  8. 重新以管理者身分登入入口網站,以便您可以存取「共用的設定」特性。 導覽至您的 Portlet 所在的入口網站網頁;開啟 Portlet 的標題列下拉功能表,並選擇「共用的設定」。 這會將 Portlet 置入共用的設定(也就是 Portlet 配接器建置器以及 Portlet JSR 168 和 286 規格所稱的「編輯預設值」)自訂作業模式,以便您可以指定那些設定檔項目的自訂值。

學習的課程及後續步驟

藉由對模型中的部分建置器呼叫輸入進行設定檔作業,只需切換設定檔,即可產生數個版本的應用程式。 在 WebSphere Portlet Factory Designer 中,可以從套用的設定檔標籤選擇設定檔。 依據配置「Portlet 配接器」建置器呼叫方式的不同,Portlet 管理者及使用者可以使用 Portlet 的「配置」及「編輯」模式,在 WebSphere Portal 中套用各種設定檔。 您也可以透過稱為設定檔選擇控制的程序來依程式的方式選擇設定檔。

設定檔還可以用於對入口網站群組進行本地化及側寫。 如需相關資訊,請參閱此 Wiki 文章

指導教學 - 建立資料庫應用程式

在本指導教學中,您將使用「SQL 表格建立」建置器,根據範例資料庫來建立服務提供者模型,該建置器會建立資料庫表格並提供完整的 CRUD(建立、擷取、更新及刪除)功能,顯現為服務作業,然後使用「服務消費者」及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。

使用這些指導教學

此指導教學集是新 WebSphere Portlet Factory 開發人員的重要起始點。 本指導教學的四個部分大多需要 30 到 45 分鐘才能完成,您應該為此指導教學留出 1 小時至 1.5 小時。 指導教學應該以下列順序完成,因為每個指導教學均基於前一個指導教學中取得的知識。 此外,完成這些指導教學之後,我們建議造訪 WebSphere Portlet Factory Wiki 上的 WebSphere Portlet Factory 學習導覽圖,以進一步增加 WebSphere Portlet Factory 學習經驗。

表 14.
指導教學順序 說明
建立 Web 應用程式專案 在本指導教學中,您將瞭解如何建立 Web 應用程式專案。
建立應用程式 在本指導教學中,您將建置簡式 "hello world" 應用程式,然後從該應用程式建立 Portlet。
建立資料庫應用程式 在本指導教學中,您將使用「SQL 表格建立」建置器,根據範例資料庫來建立服務提供者模型,然後使用「服務消費者」建置器及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。
在您的新應用程式中使用設定檔作業 繼續 "hello world" 應用程式指導教學,將設定檔作業的功能新增至您的應用程式。

您將學習的內容

  • 關於服務導向架構 (SOA)「消費者/提供者」參照範例。
  • 使用「SQL 表格建立」建置器,透過建立、擷取、更新及刪除作業,建立範例資料庫表格,並產生服務提供者。
  • 如何使用「服務消費者」中的「資料服務使用者介面」建置器,以自動產生服務提供者作業的使用者介面。

您將使用「SQL 表格建立」建置器,根據範例資料庫來建立服務提供者模型,然後使用「服務消費者」及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。 您的提供者模型將使用「表格建立」建置器,從 XML 檔案中提供的範例資料建立資料庫表格,並產生將模型轉換為服務提供者的服務作業。 您在此指導教學中學習的內容(其中包括消費者/提供者參照範例及「資料服務使用者介面」用法),將提供使用其他資料提供者(例如,Domino)時需要的知識。

設定需求

若要執行指導教學,必須進行下列設定。

  • 您需要已建立及已發佈專案。 專案必須包括「指導教學及範例/指導教學」特性集。 在「建立 WebSphere Portlet Factory 專案」指導教學中,對建立專案進行詳細說明。
  • WebSphere Portal 伺服器或 WebSphere Application Server Community Edition 必須在執行中。

建立您的資料庫應用程式

  1. 在指導教學的這個部分中,我們將為提供者建立新的 WebSphere Portlet Factory 模型。
    1. 啟動 WebSphere Portlet Factory Designer。
    2. 開啟您在「建立 WebSphere Portlet Factory 專案」指導教學中建立的 MyFirstProject WebApp 專案。
    3. 選擇檔案 > 新建 > WebSphere Portlet Factory 模型。 此指令將呼叫精靈以協助您建立新模型。
    4. 選擇應在其中建立此模型的專案。 MyFirstProject 專案應強調顯示。 按下一步繼續。
    5. 建立新模型時,您可以從啟動器模型清單中進行選擇。 在「選取模型」頁面中,從Factory 啟動器模型種類中選擇空白,再按下一步
    6. 即會顯示儲存新模型對話框。 模型會儲存在專案的 models 資料夾之下。 選擇預設資料夾位置,輸入 MyProviderModel,然後按一下「完成」。 現在, WebSphere Portlet Factory Designer 將建立新的模型並將其開啟。
  2. 新增 SQL 表格建立建置器
    註: 在指導教學的這個部分中,我們將使用「SQL 表格建立」建置器,建立新資料庫表格。 如果您要改用現有資料庫表格,則會在此步驟中使用「SQL 資料服務」建置器,而非「SQL 表格建立」。 表格中特定的欄位將不同於此處說明的欄位,但是我們說明的其他步驟及建置器將相同。 如果在 WAS CE 上執行,則可以使用類似於我們範例資料的範例 EMPLOYEE 表格。
    1. 在工作區的左下角,有一個標示為大綱的標籤,其中包含模型使用的所有建置器或模型的「建置器呼叫清單」。 模型是由建置器所建構的,且模型中的每個建置器都由建置器呼叫來代表。 在建置器呼叫清單中按兩下建置器呼叫,即可對其進行編輯。
    2. 選取 MyProviderModel 模型後,按一下 建置器挑選器圖示,以顯示可新增至此模型的建置器清單。
    3. 在搜尋方框中輸入 SQL 一字,並尋找及選取「SQL 表格建立」作為要新增的建置器呼叫類型,然後按一下確定。 這個新的建置器呼叫將在右邊窗格中,顯示建置器呼叫編輯器。 此建置器會建立並移入範例的表格,並呼叫「SQL 資料服務」建置器,其會產生建立、擷取、更新及刪除作業作為服務提供者。
      註: 如果您有現有資料庫及表格,則可能會使用「SQL 資料服務」建置器,而非「SQL 表格建立」建置器。
    4. 您必須為此建置器呼叫提供名稱。 在「名稱」欄位中,輸入 MyDB
    5. 按一下提取資料來源名稱按鈕。 此特性將取得在「伺服器配置」對話框中命名的伺服器上定義的任何現有資料來源,如果尚未存在,還允許您選取可以為您建立的範例資料來源。 在我們這種情況下,由於我們的環境配置為使用用 WebSphere Portal,此功能將從該伺服器擷取任何資料庫資訊。
    6. 在「SQL 資料來源」欄位中,選取 jdbc/CloudscapeforWPF。如果這尚不存在,系統將提示您建立該資料來源。 如果您正在使用 WAS CE,請選取 java:comp/env/jdbc/MyDataSource
    7. 按一下「匯入資料」輸入右側的選擇器圖示,然後選取 /WEB-INF/samples/data/Employees.xml ,以用於起始表格資料,然後按一下確定
    8. 在「表格名稱」欄位中,輸入 MyDBTable
    9. 按一下「掃描匯入資料」,以移入表格直欄欄位。
    10. 開啟「範例資料格式區段」,並將字串大小「上限」變更為 512。
    11. 按一下建立表格按鈕,以建立表格,並將範例資料移入該表格。
    12. 按一下「應用程式」樹狀結構,並查看我們剛建立的內容。 按一下「WebApp/資料服務/MyDB」及「綱目」,以熟悉在這裡建立的物件。 請注意,綱目中的直欄類型與 DB 直欄的資料類型相符,並且綱目將由使用者介面使用者使用,以協助產生頁面控制項
    13. 回到您剛建立「SQL 表格建立」建置器的「建置器呼叫編輯器」標籤,並在「SQL 表格建立」建置器的「進階」區段中,勾選啟用測試支援勾選框,將為此提供者模型產生測試使用者介面。 如此一來,在建置使用者介面消費者模型之前,可以獨立式執行每個作業。
    14. 按一下確定,然後執行模型。 系統會提示您儲存模型。 按一下以繼續執行。 您的預設瀏覽器將顯示測試使用者介面頁面。
      顯示測試使用者介面頁面。
      按一下 listMyDBRecords,以檢視您資料庫表格中的記錄清單。 複製其中一個員工 ID 欄位,然後按一下記錄清單底端的返回按鈕,並按一下 retrieveMyDBRecord,貼至員工 ID,然後按一下確定。 這會擷取資料庫表格中該列的詳細資料,並在自動產生的測試頁面中顯示這些詳細資料。 這些步驟說明 WebSphere Portlet Factory 服務提供者開發人員可以執行的自動測試支援,使他們可以在使用者介面開發人員已完成為這些提供者建立使用者介面使用者之前,測試資料提供者。

      您已完成建置服務提供者的步驟! 在後續步驟中,我們將建立並使用服務消費者,來使用此提供者。

  3. 在指導教學的這個部分中,這次,我們將為「消費者」建立新的 WebSphere Portlet Factory 模型,這些「消費者」將為上述資料服務提供者提供使用者介面。
    1. 開啟您在「建立 WebSphere Portlet Factory 專案」指導教學中建立的 MyFirstProject WebApp 專案。
    2. 選擇檔案 > 新建 > WebSphere Portlet Factory 模型。 此指令將呼叫精靈以協助您建立新模型。
    3. 選擇應在其中建立此模型的專案。 MyFirstProject WebApp 專案應強調顯示。 按下一步繼續。
    4. 建立新模型時,您可以從啟動器模型清單中進行選擇。 在「選取模型」頁面中,從Factory 啟動器模型種類中選擇空白,再按下一步
    5. 即會顯示儲存新模型對話框。 模型會儲存在專案的 models 資料夾之下。 選擇預設資料夾位置,輸入 MyConsumerModel,然後按一下「完成」。 現在, WebSphere Portlet Factory Designer 將建立新的模型並將其開啟。
  4. 新增「服務消費者」建置器,以產生資料服務,可以選取您剛建立的提供者
    1. 選取 MyConsumerModel 模型後,按一下 建置器挑選器圖示,以顯示可新增至此模型的建置器清單。
    2. 在搜尋方框中輸入Service一字,並尋找及選取「服務消費者」作為要新增的建置器呼叫類型,然後按一下確定。 這個新的建置器呼叫將在右邊窗格中,顯示建置器呼叫編輯器。
    3. 您必須為此建置器呼叫提供名稱。 在「名稱」欄位中,輸入 MyConsumer
    4. 在「提供者模型」欄位中,按一下輸入欄位右側的選擇器,並從清單選取 MyProviderModel,然後按一下確定
    5. 按一下確定,以儲存您的變更。 建置器呼叫編輯器會關閉,並顯示「應用程式」樹狀結構。
    6. 讓我們查看「應用程式」樹狀結構,並查看我們剛建立的內容。 按一下「WebApp/資料服務/MyConsumer」及「綱目」,以熟悉在這裡建立的物件。
  5. 新增資料服務使用者介面建置器
    1. 選取 MyConsumerModel 模型後,按一下 建置器挑選器圖示,以顯示可新增至此模型的建置器清單。
    2. 在搜尋方框中輸入Data一字,並尋找及選取「資料服務使用者介面」作為要新增的建置器呼叫類型,然後按一下確定。 這個新的建置器呼叫將在右邊窗格中,顯示建置器呼叫編輯器。
    3. 您必須為此建置器呼叫提供名稱。 在「名稱」欄位中,輸入 MyDataUI
      註: 保留其餘輸入的預設值, 因為在此實務範例中,僅可以使用一個資料服務,還因為它可以確定該資料庫表格的索引鍵欄位,已為您填入索引鍵欄位。 這將是檢查其他輸入合適時間,以取得最好可以指定的其他輸入。
    4. 按一下確定,以儲存您的變更。 建置器呼叫編輯器會關閉,並顯示「應用程式樹狀結構」。
    5. 按一下「頁面」標籤,然後按一下「頁面」視圖中的每個頁面,並注意「設計」視圖會顯示應用程式的圖形視圖。
  6. 在工作區的頂端,按一下就在功能表下方圖示列中的 右移鍵圖示,執行該模型。 系統會提示您儲存模型。 按一下以繼續執行。

    您將看到的內容

    更新的應用程式會顯示在瀏覽器中。

    您應該查看產生的 Web 使用者介面,其顯示含有分頁鏈結、按鈕及一個建立按鈕的前 5 列資料庫表格。 嘗試在此時使用應用程式、翻看列、更新、建立及刪除記錄。 整個 Web 應用程式包括資料庫存取、操作資料及 Web 型使用者介面(包括視圖、詳細資料及為您產生的更新頁面)的作業,以作為前面步驟中建立的建置器呼叫的結果。 與必須刪除構件並重新開始的其他精靈型架構不同,如果需要此應用程式上的不同變式,您可以重新開啟前面的任何建置器呼叫及修改輸入,並且您可以新增及移除其他建置器呼叫,以自訂產生的應用程式。

    在後面的指導教學中,您還將瞭解如何使用設定檔作業,以允許這些建置器輸入的邏輯型自訂作業,從而根據執行時期可用的使用者群組、角色、其他自訂邏輯或資訊,產生應用程式上的變式自動化。 請注意,預設清單使用者介面相當合理,但是會併入全部列及產生的標籤。 在此指導教學中,我們接下來將展示如何自訂產生的使用者介面。

  7. 新增「Portlet 配接器」建置器,以使此模型用作 Portlet
    1. 選取 MyConsumerModel 模型後,按一下 建置器挑選器圖示,以顯示可新增至此模型的建置器清單。
    2. 在搜尋方框中輸入Portlet一字,並尋找及選取「Portlet 配接器」作為要新增的建置器呼叫類型,然後按一下確定。 這個新的建置器呼叫將在右邊窗格中,顯示建置器呼叫編輯器。
    3. 您必須為此建置器呼叫提供名稱。 在「名稱」欄位中,輸入 WPFTutorialDBAccess。 這將由入口網站用作「Portlet 名稱」。
    4. Portlet 標題欄位中,輸入 "WPF Tutorial DB Access"。 這將由入口網站用作「Portlet 標題」。
    5. 按一下確定,以儲存您的變更。 建置器呼叫編輯器會關閉,並顯示「應用程式」樹狀結構。
    6. 如果已根據 WebSphere Portal(而非 WebSphere Application Server Community Edition)配置您的專案,則現在可將專案發佈至入口網站伺服器,然後將 Portlet 新增至入口網站網頁。 如果您正在使用 WebSphere Application Server Community Edition,目前可以跳過此步驟。
  8. 新增資料欄位設定建置器
    1. 開啟頁面 MyDataUIList,按一下清單頁面的頁面視圖,並用滑鼠右鍵按一下「員工編號」直欄,然後選取資料欄位設定 > 欄位
    2. 使用排序下拉清單方框,將「欄位類型」變更為「整數(已排序)」,以便可以根據數值對員工編號直欄進行排序。 此步驟會將「資料欄位設定」建置器新增至模型,設定員工編號的欄位類型,並將其餘的直欄保留為原樣。 您還可以直接從建置器選用區新增「資料欄位設定」建置器。
    3. 既然您具有此「資料欄位設定」建置器呼叫,按兩下建置器呼叫清單中的該呼叫,開啟建置器使用者介面,以便您可以查看已為您進行的設定,而且我們還會將直欄的某些自訂作業新增至此處。
      註: 在許多欄位中,您可以直接鍵入項目,而非從下拉清單方框中選取選項。
      使用此表格作為正確欄位值的指引
      名稱 標籤 隱藏 排序 欄位類型
      EMPNO [員工編號] [一律顯示] 開啟 整數
      FIRSTNME 名字 [一律顯示] [關閉] 字串
      MIDINIT 中間 [一律顯示] [關閉] 字串
      LASTNAME [姓氏] [一律顯示] 開啟 String
      WORKDEPT [工作部門] 僅在表格中隱藏 [關閉] 字串
      PHONENO [電話號碼] [一律顯示] [關閉] 字串
      GENDER [性別] 僅在表格中隱藏 [關閉] 字串
      BIRTHDATE [出生日期] 僅在表格中隱藏 [關閉] 日期:yyyy-MM-dd
      SALARY [薪資] 僅在表格中隱藏 [關閉] 貨幣:#,###.00
      EMAIL [電子郵件] 僅在表格中隱藏 [關閉] 字串
      COMMENTS [註解] 僅在表格中隱藏 [關閉] Rich Text
    4. 按一下確定
  9. 在工作區的頂端,按一下就在功能表下方圖示列中的 右移鍵圖示,執行該模型。 系統會提示您儲存模型。 按一下以繼續執行。

    您將看到的內容

    請注意,顯示記錄的列表清單的起始視圖頁面含有 Portlet 使用者介面更容易管理的欄數。 此時,嘗試在每個視圖中編輯、刪除及建立項目。

學習的課程及後續步驟

在本指導教學中,您已根據範例資料庫,使用「SQL 表格建立」建置器,建立服務提供者模型,然後已使用「服務使用者」及「資料服務使用者介面」建置器,建立使用者介面服務消費者模型。 然後使用「資料欄位設定」建置器自訂使用者介面。 而且,如果您已有資料庫表格,則將直接使用「SQL 資料服務」建置器,而非如您在上方使用的「SQL 表格建立」建置器(覆蓋「SQL 資料服務」並新增表格建立)。

註: 此指導教學中採用的方法用於顯示「提供者/消費者」模型的結構。 如果您有現有資料庫,則使用「資料服務使用者介面」精靈,快速為選定服務建置完整使用者介面 (UI)。 此精靈會自動從服務提供者模型,為作業產生頁面、表單、動作、按鈕及其他使用者介面元件。 您可以使用「SQL 資料服務」建置器建立提供者,您還可以使用其他建置器(例如,「Domino 資料存取」或「服務定義」)。

現在,您已準備完成在您的新應用程式中使用設定檔作業指導教學,將設定檔作業的功能新增至應用程式。

快速入門:發佈第一個小組件

此快速入門會引導您逐步建立小組件。

在本端安裝的 IBM Lotus Mashups 伺服器上,使用 IBM WebSphere Portlet Factory 來執行、測試及發佈小組件。

如果您無法在本端開發機器上安裝 Lotus Mashups 伺服器,則可建立對遠端安裝之 Lotus Mashups 伺服器的存取權。

設定 Mashup 伺服器配置

請遵循下列步驟,以設定 Mashup 伺服器。

  1. 按一下 Windows > 喜好設定
  2. 從樹狀結構選取 WebSphere Portlet Factory Designer > 伺服器配置
  3. 按一下新增按鈕。
  4. 輸入伺服器配置的名稱
  5. 伺服器類型下拉清單中,選取 WebSphere Application Server and IBM Mashup Center 2.0
  6. 輸入伺服器的主機名稱。 如果 Mashup 伺服器為本端伺服器,則輸入 http://localhost。 如果正在遠端執行 Mashup Center,請輸入完整 DNS 主機名稱。 在大部分情況下,「SOAP 連接器埠」可以保留 8880。
    註: 如果 SOAP 連接器埠不正確,則您可以存取「管理主控台」,以檢查伺服器的 SOAP 埠。 在管理主控台中,選取「伺服器」/「伺服器類型」/WebSphere Application Servers。 從清單選取 server1,然後選取「埠」。 您會看到這裡列出的「SOAP 連接器位址」。
  7. 輸入具有 Mashup Center 管理存取權的「使用者名稱」及「密碼」。
  8. 按一下測試連線驗證,以驗證您的輸入。
  9. 按一下「確定」,以儲存「伺服器配置」

如果您正在部署至遠端 Mashup Center,則需要將磁碟機對映至伺服器上的 InstalledApps 資料夾,以利用「自動同步化」特性。 如果未設定對映磁碟機,則您將需要「發佈」專案以進行執行,以便看到您的變更。

建立、測試及部署 WebSphere Portlet Factory 小組件

請遵循下列步驟,使用 WebSphere Portlet Factory 建立小組件,以與 Lotus Mashups 搭配使用。

  1. 建立 WebSphere Portlet Factory 專案。
    1. 跳至檔案 > 新建 > WebSphere Portlet Factory 專案
    2. 在「專案」名稱欄位中輸入小組件的名稱,然後按下一步
    3. 整合延伸下,選取小組件延伸試算表延伸,然後按下一步
    4. 選取您發佈專案時要使用的伺服器配置,然後按一下完成
    5. 詢問是否要發佈專案時,按一下
  2. 在專案中,建立模型。
    1. 按一下檔案 > 新建 > WebSphere Portlet Factory 模型
    2. 選取您要建立模型的專案,然後按下一步
    3. 選取模型類型。 在此情況下,選取試算表視圖及表單,然後按下一步
    4. 選取將此模型部署為小組件 並將將此模型部署為 Portlet 保留為未選取,然後按下一步
    5. 輸入小組件標題,在小組件種類中,選取您希望小組件在其下顯示的 Lotus Mashups 工具箱種類,然後按下一步
    6. 試算表設定中,指定要匯入的試算表,以及要尋找內容的方法。 按下一步

      如果您沒有可用的試算表,會提供一個預設試算表。 如果您的專案包括指導教學及範例特性集,則可以使用預設檔案。

    7. 分頁設定中,指定是否分頁顯示資料。 分頁會改進效能。按下一步
    8. 選擇性地輸入直欄設定,並按下一步
    9. 選擇性地輸入「詳細資料頁面」設定,並按下一步
    10. 輸入模型名稱並按一下完成
  3. 跳至執行 > 執行...
    1. 從「執行」對話框中,按一下 WebSphere Portlet Factory 模型 > 作用中模型
    2. 按一下執行
    3. 小組件即會出現在您的預設瀏覽器中。
    4. 在本端修改及執行小組件,直到您滿意為止。
  4. 從「作用中的專案」中,將小組件發佈至 Lotus Mashups 選用區。用滑鼠右鍵按一下專案名稱。 跳至小組件 > 將小組件發佈至選用區,以發佈小組件。選取您要發佈的小組件,並按一下確定

快速入門:第一個正式作業發佈的小組件

此快速入門會引導您在本端逐步建立及測試小組件,然後將小組件遠端上傳至 IBM InfoSphere MashupHub

然後您可以將其發佈至 IBM Lotus Mashups。在匯出至遠端伺服器之前,這是對本端安裝之 Lotus Mashups 伺服器進行開發及測試的良好作法。 如果您無法安裝本端 Lotus Mashups 伺服器,或者當您在本端完成測試,並準備好發佈至遠端 Lotus Mashups 伺服器時,請遵循本文件中的步驟。

IBM WebSphere Portlet FactoryLotus Mashups 一起使用,可以建立變成混搭頁面一部分的小組件。 一般而言,開發人員會在其本端系統上建立小組件,然後在本端發佈及測試這些小組件。 然而,在某些情況下,開發人員的工作環境中沒有資源可以執行本端 Lotus Mashups 伺服器,或者可能開發團隊中的多位成員必須將小組件發佈至共用 Lotus Mashups 伺服器。完成本端開發及測試時,團隊會把新建立的小組件發佈至遠端伺服器。 遠端伺服器可以是正式作業伺服器、整合伺服器或品質保證伺服器。

已安裝的伺服器

WebSphere Portlet Factory 會安裝 IBM WebSphere Application Server Community Edition (CE) 應用程式伺服器。 WebSphere Application Server CE 是一種以 Apache Geronimo 為基礎的開放程式碼 Java 2 Platform Enterprise Edition (J2EE) 應用程式伺服器。 WebSphere Application Server CE 會為 WebSphere Portlet Factory 提供輕量型測試功能。 您可以在此環境中測試及執行小組件。

在部分開發環境中,許多使用者必須有共用伺服器的存取權。 因為 WebSphere Portlet Factory 已與 Lotus MashupsInfoSphere MashupHub 整合,因此會支援將小組件發佈至遠端伺服器。

處理

在建立混搭時非常有用的建立小組件處理程序,與使用多個產品有關。
  1. WebSphere Portlet Factory
    1. WebSphere Portlet Factory 中建立小組件。
    2. 可能的話,執行及測試在本端安裝的 Lotus Mashups 伺服器。 如果不能,則在本端安裝的 WebSphere Application Server Community Edition (CE) 上測試。
    3. 匯出正式作業 WAR 檔。
  2. InfoSphere MashupHub
    1. 透過 InfoSphere MashupHub 將 WAR 檔上傳成 iWidget 套件檔。
    2. InfoSphere MashupHub 的小組件明細頁面中,選擇新增至 Lotus Mashups,以將小組件發佈至 Lotus Mashups 伺服器,並將小組件發佈至「Lotus Mashups 工具箱」。
  3. Lotus Mashups

設定 Lotus Mashups 伺服器配置

請遵循下列步驟,以設定 Lotus Mashups 伺服器。

  1. 按一下視窗 > 喜好設定 > WebSphere Portlet Factory Designer > 伺服器配置
  2. 按一下建立伺服器配置,以選取 WebSphere Application Server 及 IBM Mashup Server 2.0,然後按一下確定
  3. 伺服器配置中,輸入名稱。
  4. 伺服器主機中,輸入伺服器的主機名稱。

    如果 Lotus Mashups 伺服器為本端伺服器,請保留 localhost。如果您是在遠端執行 Lotus Mashups,請輸入完整的 DNS 主機名稱。 在大部分情況下,OAP 連接器埠可以保留 8880。

    註: 如果 SOAP 連接器埠不正確,則您可以存取「管理主控台」,以檢查伺服器的 SOAP 埠。在管理主控台中,選取「伺服器」/「伺服器類型」/WebSphere Application Servers。從清單選取 server1,然後選取「埠」。您會看到這裡列出的「SOAP 連接器位址」。
  5. 使用者名稱密碼中,輸入具有 Lotus Mashups 管理存取權的帳戶資訊。
  6. 按一下測試連線驗證,以驗證您的輸入。
  7. 按一下確定,以儲存伺服器配置。

如果您正在部署至遠端 Lotus Mashups 伺服器,則需要將磁碟機對映至伺服器上的 InstalledApps 資料夾,以利用「自動同步化」特性。如果未設定對映磁碟機,則您必須先「發佈」專案,然後再執行該專案,以便看到您的變更。

WebSphere Portlet Factory 建立小組件

建立小組件。

  1. 建立 WebSphere Portlet Factory 專案。
    1. 跳至檔案 > 新建 > WebSphere Portlet Factory 專案
    2. 在「專案」名稱欄位中輸入小組件的名稱,然後按下一步
    3. 整合延伸下,選取小組件延伸試算表延伸,然後按下一步
    4. 選取您發佈專案時要使用的伺服器配置,然後按一下完成
    5. 詢問是否要發佈專案時,按一下
  2. 在專案中,建立模型。
    1. 按一下檔案 > 新建 > WebSphere Portlet Factory 模型
    2. 選取您要建立模型的專案,然後按下一步
    3. 選取模型類型。 在此情況下,選取試算表視圖及表單,然後按下一步
    4. 選取將此模型部署為小組件 並將將此模型部署為 Portlet 保留為未選取,然後按下一步
    5. 輸入小組件標題,在小組件種類中,選取您希望小組件在其下顯示的 Lotus Mashups 工具箱種類,然後按下一步
    6. 試算表設定中,指定要匯入的試算表,以及要尋找內容的方法。 按下一步

      如果您沒有可用的試算表,會提供一個預設試算表。 如果您的專案包括指導教學及範例特性集,則可以使用預設檔案。

    7. 分頁設定中,指定是否分頁顯示資料。 分頁會改進效能。按下一步
    8. 選擇性地輸入直欄設定,並按下一步
    9. 選擇性地輸入「詳細資料頁面」設定,並按下一步
    10. 輸入模型名稱並按一下完成
  3. 在本端執行及修改小組件,直到您滿意為止。
  4. 用滑鼠右鍵按一下專案名稱。按一下匯出並針對您的環境選取正確的 WAR。
  5. 按一下完成 WebSphere Portlet Factory 會在您的工作區中建立 WAR 檔。 小組件必須是位於可存取檔案路徑或 URL 上的套件檔 (不論是在本端或在一般伺服器上)。 若要發佈至 Lotus Mashups,套件檔必須是 WAR。

InfoSphere MashupHub 上傳小組件

請遵循下列步驟,將小組件上傳至 InfoSphere MashupHub

  1. 在「InfoSphere MashupHub 首頁」標籤上,於建立畫面中,按一下上傳小組件
  2. 上傳小組件標籤
    1. 選取您要上傳的小組件類型,在此情況下為 iWidgets。 按下一步
    2. 選取上傳檔案。 套件檔必須是 WAR 檔。
    3. 指定小組件套件檔的位置。
    4. 下一步
  3. 指定正在上傳之小組件的下列相關資訊:
    1. 指定小組件的標題、說明及版本。
    2. 選擇性地指定與小組件相關聯的標籤。 您可以使用現有標籤清單,作為套用標籤的指引。
    3. 選擇性地選取要套用至小組件的許可權。
    4. 選擇性地選取您想要小組件與其相關聯的種類。 種類會提供小組件的一般分類。
    5. 選擇性地在「相關項目」區段上指定型錄中的物件,其可以與正在上傳的小組件搭配使用。
    6. 選擇性地指定小組件的任何技術文件 URL。
    7. 按一下完成。 即會出現確認,指出已儲存小組件。 小組件現在會列示在 InfoSphere MashupHub型錄中,並可供其他使用者使用,如您在步驟 C 中選取之許可權的指示。
  4. 如果您關閉已完成的頁面,並透過清單回到小組件鏈結,則從已上傳的小組件標籤,或從您的小組件標籤中,執行下列動作:
    1. 按一下檢視 iWidget 明細。 即會顯示小組件詳細資訊。 此「視窗」還包含「動作」功能表,可讓您將小組件直接新增至 Lotus Mashups
    2. 按一下動作 > 新增至 Lotus Mashups
    3. 輸入「使用者 ID」及密碼,以存取 Lotus Mashups 伺服器。
    4. 下一步
  5. 輸入要新增至 Lotus Mashups 之小組件的標題及說明。
  6. 選取小組件的種類。 種類會出現在 Lotus Mashups 頁面的「工具箱」上。 定義在 WAR 中的所有小組件都會包含模型名稱出現在相同的種類中。
  7. 按一下完成

Lotus Mashups 中建置您的混搭

  1. 登入 Lotus Mashups,檢查小組件是否出現在「工具箱」的指定種類下。

    附註:如果您已登入,則必須先登出再重新登入。 Lotus Mashups 只會在登入時重新整理工具箱。

  2. Lotus Mashups 選用區上測試小組件,查看其是否如預期般運作。
  3. 如果小組件需要修改,建議您回到開發人員環境以修改小組件。
  4. 建立新的「正式作業 WAR」。
  5. 使用 WebSphere Application Server 管理主控台從 InfoSphere MashupHub 移除舊的 WAR。
  6. 將修訂的 WAR 檔重新發佈至 InfoSphere MashupHub
  7. Lotus Mashups 選用區刪除舊的小組件。
  8. InfoSphere MashupHub,將已修訂的小組件推送至 Lotus Mashups

使用 IBM WebSphere Portlet Factory 開發 Web 應用程式

在建立專案及模型之後,您就可以開始將建置器新增至模型。

大部分設計良好的 Web 應用程式會實作「服務導向架構 (SOA)」。 在 SOA 應用程式中,您可以建立呼叫後端服務或呈現使用者介面以便呼叫服務的模型。 開發 Web 應用程式主題為您介紹如何建立使用者介面的頁面及表單,或者如何建立用於呼叫後端系統的服務。

如需開發 Wiki 的相關資訊,請遵循這些鏈結:

建置服務導向應用程式

建置服務導向應用程式與建立服務提供者模型及服務消費者模型有關。

  1. 建立包括下列建置器的服務提供者模型。
    • 一種整合建置器 (例如,「SAP 函數呼叫」或「SQL 呼叫」),或提供資料存取的方法。
    • 建立服務之基礎支援及命名服務的「服務定義」建置器。
    • 呼叫模型中可用資料存取支援的單一「服務作業」建置器或多個「服務作業」建置器。
  2. 測試服務作業。
    • 將「服務測試」建置器新增至「服務提供者」模型
    • 在「服務定義」建置器中,啟用新增測試支援輸入。
  3. 建立包括下列建置器的服務消費者模型。
    • 呼叫「服務提供者」模型提供之服務作業的「服務消費者」建置器。
    • 要格式化及顯示資料的各種「頁面」建置器 (例如,「視圖及表單」)。
  4. 選擇性的: 新增「服務 Stub」建置器,以在「服務提供者」模型中產生 Stub 服務模型。
  5. 選擇性的: 將「服務文件」建置器新增至模型,在其中一個或者兩個模型中產生服務文件。
  6. 選擇性的: 利用「服務對映登錄」來使用 Stub 服務模型或在服務實作之間進行切換。

    若要執行此動作,請在位於 WEB-INF/config/service_mappings 內的 XML 檔中設定服務對映。

建置呈現層

有一個核心建置器可用於呈現層:

「服務消費者」建置器會讓「服務提供者」模型中定義的所有作業可供使用。 它可讓其他建置器參照服務提供的所有資訊,包括輸入及輸出綱目、作業及相關聯的變數。 在「服務消費者」建置器提供資料給「頁面自動化」系統之後,您可使用「頁面自動化」建置器的完整陣列來產生頁面。 例如,「視圖與表單」建置器可以參照服務資訊,包括輸入及結果綱目,並自動產生複式呈現元素,例如表單及清單視圖。

建立服務提供者模型

您可以使用「服務定義」及「服務作業」建置器,建立服務提供者模型。

  1. 建立模型,其中包含定義及命名服務的「服務定義」建置器。
    1. 在「服務定義」建置器中,將讓服務變成公用輸入保持啟用狀態 (預設值)。

      此服務適用於應用程式中的所有模型。

    2. 在「測試支援」區段中,啟用新增測試支援輸入。

      這有助於對服務提供者模型進行測試。

  2. 使用整合建置器 (例如,「SAP 函數呼叫」、「SQL 呼叫」或「Web 服務呼叫」建置器),來建立後端資料存取作業。
  3. 使用「服務作業」建置器,來命名此後端資料存取作業,並將其新增至您的服務。
    1. 在「服務作業」建置器中,選取整合建置器所建立的作業。
    2. 視需要,將其他作業新增至服務。
  4. 建立使用新資料服務的服務消費者模型。
    1. 在服務消費者模型中,放置一個「服務消費者」建置器,並選取先前建立的服務提供者模型。
如果已在「服務定義」建置器中選取新增測試支援,則只需執行模型,即可測試服務提供者模型中的服務。

關於建置服務階層

多個建置器可用來建立服務層。

服務定義建置器
此建置器會為一開始是空白的服務建立基礎支援、提供透過 WSDL (Web 服務定義語言) 文件顯現服務的選項,並命名服務。
服務作業建置器
此建置器會將作業或方法新增至「服務定義」建置器所定義的服務。 該作業可以呼叫模型中可用的任何資料存取支援。 資料存取通常是透過使用一個以上的後端整合建置器 (如「SAP 函數」或「SQL 呼叫」) 來提供,但是也可以由鏈結的 Java 物件 (LJO) 或任何資料傳回方法來提供。
Web 服務呼叫建置器
此建置器用來在使用 WSDL 文件進行定義的 Web 服務中,呼叫單一作業。
Web 服務多重作業建置器
此建置器會將在 WSDL 文件中定義的所有作業都新增到您的模型中。 它會結合「Web 服務呼叫」建置器、「服務定義」建置器及「服務作業」建置器的特性。
REST 服務呼叫建置器
此建置器用於想在其中呼叫「呈現狀態傳送 (REST)」樣式服務的模型。

資料服務模型

若要實作 SOA 應用程式,請建立「服務提供者」(後端資料存取) 或「服務消費者」(前端呈現) 模型,然後將它們結合 (以彈性方式),用於應用程式測試及發佈。

利用此方法,開發人員團隊可以在這些層上獨立工作,無需時常隨著另一端上所做的修改進行協調及調整。 此外,無需存取目標後端系統,即可繼續進行開發,從而大幅簡化所有人、特別是 UI 團隊的工作。
「服務提供者」模型 - 定義服務
這些模型定義 WebApp 中的服務;然後由「服務消費者」模型來參照該「模型」(及服務)。 服務可以提供一個以上的作業 (類似於 WSDL 服務中的作業)。 服務可以傳回應用程式中需要的任何結果,包括從多個後端系統或資料庫收集資料,並以所需的任何形式來組合資料。

即使資料來源代表多個後端系統,定義服務含有多個相關作業通常也很有用。 例如,客戶資訊服務可能會定義要傳回客戶清單 (基於搜尋準則)、客戶詳細資訊、客戶訂單、客戶抱怨等的作業。 產品服務可能會針對產品依種類、產品依價格、產品庫存、產品成本、產品銷售業績等定義作業。

「服務消費者」模型 - 呼叫作業
如其名稱所示,這些模型使用一個以上的「服務消費者」建置器,來呼叫「服務提供者」模型提供的服務作業。 通常 (但不是必要),「服務消費者」模型會產生 UI,透過服務提供者取得資料,然後使用必要項目 (需要由其他建置器提供) 來產生具有表單、視圖、圖形等的頁面,這些頁面進而組成呈現層。 「提供者/消費者」建置器集將 UI 模型分隔開來,並在 UI 與服務模型之間提供足夠寬鬆的連結,以容許在執行時期使用替代服務提供者模型進行替代。

範例 - 建置 SOA 應用程式

此範例使用簡式服務提供者及服務消費者 (呈現) 模型配對。

儘管服務可以輕鬆地使用任何 WebSphere Portlet Factory 整合建置器 (如 SAP、Domino、PeopleSoft、「Web 服務」),或為專有後端系統建立的任何整合建置器,它仍使用服務階層 (「SQL 呼叫」建置器) 中的 JDBC 資料庫連線。

實際上,建置應用程式僅需要兩個步驟:

  1. 使用三個建置器建立服務階層 (服務提供者模型):
    • 整合建置器 (SAP、SQL、Domino 等) 或方法
    • 服務定義建置器
    • 服務作業建置器
  2. 透過這些建置器來使用「呈現」模型中的服務作業:
    • 服務消費者建置器
    • 各種頁面自動化建置器 (視圖及表單、記錄、清單及明細等)

一旦這些核心組件就位,您便可以新增其他建置器,以視需要加強服務或消費者端。

其他可用的 SOA 特性

若要進一步加強 SOA (服務導向架構) 應用程式的開發,IBM WebSphere Portlet Factory 提供可簡化及加速開發的其他特性。

其中包括:
透過 Stub 服務模型的斷線支援

透過按「服務定義」建置器中的按鈕,您可以自動建立 Stub 服務模型。 此完整產生模型的介面與原始「服務提供者」模型的介面相同,但是包括作業、綱目及範例資料之完全自行包含的 Snapshot。 Stub 服務模型使您不再需要連接至資料來源,因而減少配置系統的麻煩,並且也不必連接至真實系統 (例如 SAP、IBM Lotus Domino 或 PeopleSoft),或者確保本端存在系統的「開發人員」版本。 如果需要,可以從實際結果資料自動擷取範例資料,這些實際結果資料是透過僅呼叫服務一次,然後使用斷線模式支援來取得。

如果您的後端系統回應緩慢,或者其可用性受到限制,那麼透過使用這種斷線模式開發方法,可以節省您的大量時間。 使用「Stub 服務」模型意味著產生程序不必針對每個重新產生循環存取緩慢的後端系統。

自動服務測試

「服務測試」建置器可讓您自動產生所需的頁面及程式碼,以測試服務中定義的所有作業,包括測試每個作業時預設輸入的規格。 「服務測試」建置器可讓您輕鬆地驗證後端系統功能,其完全獨立於任何呈現層且無需建置個別的測試控制工具。 您還可以產生直接呼叫服務作業的「無監視器型」方法,此功能有助於建立服務的自動化測試,而無需檢視瀏覽器頁面。

簡式服務文件

「服務文件」建置器會在此雙重架構的兩端自動產生服務文件。 它會針對「服務提供者」模型建立的服務或「服務消費者」模型使用的服務,建立服務及其作業的相關資訊,包括輸入及結果。 或者,您也可以使用個別文件模型,來產生 WebApp 中任何服務的文件。

動態服務對映
這一強大的特性可讓您動態地管理同等的服務,方法是讓您在參照服務時 (在設計時期或執行時期) 交換所使用的實際「服務提供者」模型。 「服務對映登錄」(簡式 XML 檔案) 可用來指定應該用於提供已參照服務的模型。 此「服務對映」功能自動支援實務,例如:
  • 將「Stub 服務」模型用於大部分「提供者」實作工作,而且只在測試已建置的項目時才在實際連線中交換。
  • 將「Stub 服務」模型用於呈現模型的開發及測試,然後簡單地修改「服務對映」檔案,以啟用要使用的實際服務 (具有實際連線功能)。
  • 隨時切換至替代服務實作 (例如,使用不同的後端系統),而無需修改任何呈現模型。 如此可在應用程式開發期間或針對已發佈的應用程式,啟用可替代的服務。 唯一的需求是讓已選取的模型實作相同的服務提供者介面。

服務介面支援

為協助交換「服務提供者」模型,「資料服務」建置器支援「服務」介面概念,在概念上與 Java 介面類似。 「服務定義」建置器可讓您指定想要用作「介面」定義之其他「服務提供者」模型的名稱。 當您想要開發使用一般呈現(服務消費者)模型集的替代「服務提供者」實作時,「介面」概念非常有用。 它可確保您能夠在「服務提供者」模型之間進行交換,而不必中斷呈現模型。

「服務定義」及「服務作業」建置器會自動提供協助及驗證,以正確實作指定的「服務介面」(不會自動產生替代實作)。 服務名稱、作業名稱及作業參數的數目及名稱會得到驗證。 因為不會驗證輸入及結果類型,所以您可以利用 WebSphere Portlet Factory 的調適性特性,以替代格式來實作服務。

使用 IBM WebSphere Portlet Factory 專案

專案是 WebSphere Portlet Factory 中應用程式的基礎。

專案包含 WebSphere Portlet Factory 建置 Web 應用程式、Portlet 應用程式或小組件所需的所有構件。

WebSphere Portlet Factory Designer 精靈可協助您執行任何專案作業,如建立專案、在專案中新增 WebSphere Portlet Factory 構件及移除 WebSphere Portlet Factory 構件,以及修改專案設定。

大部分精靈可以從專案的右鍵功能表存取,而且精靈通常會提供預設值,您可以根據開發環境變更這些值。

一般 WebSphere Portlet Factory 專案內容

下列性質說明一般 WebSphere Portlet Factory 專案。

專案本質
WebSphere Portlet Factory 專案會使用 Java 專案本質。
專案內容
WebSphere Portlet Factory 專案包含 WebSphere Portlet Factory 可服務內容根目錄的所有內容。 例如,wpf.war 及其下層內容。
來源目錄
WebSphere Portlet Factory 專案會使用專案安裝 WEB-INF/work/source 目錄作為來源目錄。 您也可以指定其他目錄作為「來源目錄」,但是必須包含這個目錄。
併入的程式庫
WebSphere Portlet Factory 專案包括 WebSphere Portlet Factory WEB-INF/lib 目錄中的所有 JAR 檔,以及 WEB-INF/clientlibs/servlet.jar 中的 JAR 檔。
外部工具建置器
WebSphere Portlet Factory WebApp 建置器執行 Ant Script,將檔案從專案複製到伺服器。

專案位置

依預設, WebSphere Portlet Factory 專案位於 Eclipse /workspace 目錄。 然而,您可以在檔案系統的其他地方找到 WebSphere Portlet Factory 專案。 在 Windows 系統上,由於對路徑名稱長度的限制,建議您將專案置於檔案系統頂端或附近。

建立 IBM WebSphere Portlet Factory 專案

建置應用程式的首要步驟是建立專案。

此專案將包含應用程式需要的所有構件及特性。

  1. 設定環境。
    1. 在本端安裝 WebSphere Portlet Factory Designer。

      WebSphere Portlet Factory Designer 是用於建立 Web 應用程式、Portlet 及小組件的開發環境。 它要安裝到一個整合開發環境 (IDE),如 Eclipse 或 Rational Application Developer。 如果尚未安裝 Eclipse 或 Rational Application Developer,則可以在 WebSphere Portlet Factory 安裝程序期間安裝 Eclipse。

    2. 建立對 IBM WebSphere Portal 伺服器、IBM WebSphere Application ServerIBM WebSphere Application Server Community Edition (CE)、Tomcat、IBM Lotus Mashups 伺服器或 IBM InfoSphere MashupHub 之本端或網路化安裝的存取權。

      若要發佈專案,則目標伺服器必須在執行中。

  2. 啟動您已在其中安裝 WebSphere Portlet Factory 的 Eclipse 或 Rational Application Developer 用戶端。
  3. 從功能表中按一下視窗 > 開啟視景 > 其他 > WebSphere Portlet Factory
  4. 檔案功能表中,選取新建 > WebSphere Portlet Factory 專案
  5. 提供專案名稱,然後按下一步
  6. 特性集頁面中,選取要併入專案的特性集,然後按下一步

    您可以稍後在專案中新增或移除特性集。 預設條件是選取 Dojo Ajax 特性集。 此設定可讓您的專案在 Web 應用程式中,利用使用者介面的最新外觀及樣式特性。

  7. 下一步,繼續「伺服器配置」畫面。

    即會顯示現行配置設定。 如果在安裝 WebSphere Portlet Factory 時,在您的系統上安裝 WebSphere Application Server CE,或其已安裝在您的系統上,則會自動為您建立 WebSphere Application Server CE 伺服器配置。

    您可以新增配置,或者編輯或刪除目前選取的配置。

  8. 選擇性的: 針對您的特定環境,編輯專案的現有配置。
    1. 在「伺服器配置」視窗中,按一下編輯

      選定伺服器配置的配置設定會顯示在「編輯伺服器配置」視窗中。

    2. 修改任何配置設定。
    3. 選擇性的: 對於部分伺服器配置,您可以按一下測試伺服器連線,驗證目標伺服器的連線。

      如果收到錯誤,請確保伺服器正在執行中,然後再按一下測試伺服器連線。 按一下確定繼續。

  9. 按一下完成以完成建立專案。

    如果伺服器配置的目標伺服器不在執行中,則系統會提示您啟動該伺服器。 如果您計劃建立並測試應用程式,則應啟動該伺服器。 否則,可以稍後啟動該伺服器。

    系統會提示您立即發佈您的專案。 如果您按一下,則會在本端發佈 WAR 檔,並在您對專案進行變更時,自動發佈該 WAR 檔。

「專案瀏覽器」中會顯示新專案的名稱。 會在您的專案中建立下列內容檔。
/WEB-INF/config/override.properties
此檔案可讓您的專案利用最新佈景主題(bowstreet.themeFile 內容)及預設「豐富型資料定義 (RDD)」檔案(bowstreet.baseRddFile 內容)。 佈景主題檔案(/WEB-INF/factory/themes/blue_WPF7.uitheme)的內容可讓您使用後置動作行為中的智慧型重新整理特性,其會在 Portlet 中進行局部頁面重新整理。 RDD 檔案的內容提供若干自動設定,可用來顯示及驗證使用者介面 (UI) 中的頁面自動化欄位及直欄。 依預設,頁面自動化頁面會使用單一 RDD 檔案(位於 /WEB-INF/factory/data_definitions)。

建置 IBM WebSphere Portlet Factory 專案

WebSphere Portlet Factory 專案中使用時,Eclipse 建置作業會執行多個動作。

  • 將原始檔轉換成執行檔

    例如,將 Java 來源編譯成類別檔,以及將內容檔從來源目錄複製到類別目錄。

  • 複製檔案及建立 WAR

    例如,複製到應用程式伺服器上的輸出位置,或複製到 WAR 檔。

如果啟用自動建置設定 (視窗 > 喜好設定 > 一般 > 工作區下的自動建置),則 WebSphere Portlet Factory Designer 會以最佳方式運作。 儘管依預設會啟用此設定,但是如果工作區中的其他作用中專案具有大量原始檔,則開發人員有時會停用此設定,否則會花費很長時間來建置。

如果執行時必須停用此設定,則在下列情況下可能需要手動建置。

  • 新增程式檔 – 例如,安裝特性集或套件時
  • 產生原始檔 – 例如,透過「資料頁」建置器建立資源軟體組動作
  • 與應用程式伺服器同步化。 例如,在變更專案中的任何資源 (模型、設定檔集或內容) 之後,使用 URL 存取伺服器。
    註: Run 指令一般會在啟動首頁之前執行建置。

關於建立專案

完成建立專案時,您可以選擇要發佈開發 WAR 檔,或匯出正式作業 WAR 檔。

Portlet 和小組件的狀況不同。
若為 Portlet

WebSphere Portlet Factory 可以為您產生兩個 WAR 檔。 在應用程式伺服器上單獨執行您的應用程式時,會使用 WebSphere Portlet Factory 開發 WAR 檔。 執行應用程式作為入口網站內的 Portlet 時,會使用 Portlet WAR 檔。

如果尚未選擇「發佈應用程式」功能,則需要在此處理程序完成後手動發佈 WAR 檔。 如果您已選擇「發佈應用程式」功能,則會為您將 WAR 檔發佈到專案之伺服器配置中所指定的伺服器。 這時會執行大量工作,所以發佈處理程序需費時 2 到 3 分鐘才能完成。

如果您使用 WebSphere Portal 的本端安裝,則依預設會啟用 WebSphere Application Server 安全。 所以在 WAR 檔建立期間,可能會提示您輸入認證。 請使用 WebSphere Application Server 管理者認證,而非 Portal 管理者認證。 同時,在讓發佈應用程式功能自動執行之前,請務必等待這個提示。 如果您忽略它,則提示會逾時,將不會自動發佈 WAR 檔。 在此情況下,您還是可以使用「WebSphere Application Server 管理主控台」手動安裝及配置 WAR 檔。

程序完成後, WebSphere Portlet Factory 會顯示您所安裝的特性集所適用的 README 編輯器。 請將這些檔案閱讀一遍,讀完後關閉檔案。 現在應該只剩下空的 (灰色) 工作區。

如果 Websphere Administration Server 或 WebSphere Portal Server 是遠端伺服器,則會在參考資訊畫面下看到一則錯誤訊息。 此訊息說明開發 WAR 以及包含該 WAR 的 EAR 均尚未發佈。 如果選擇不自動發佈 Portlet WAR,或無法使用入口網站伺服器,則需要使用「WebSphere Portal 管理主控台」,手動發佈該 WAR。

若為小組件

開發 WAR 檔包含可協助您加速開發時間的公用程式。 開發 WAR 是根據伺服器配置中所提供的輸入來建置的。 如果已針對「發佈應用程式」配置了伺服器配置,則在建置開發 WAR 時,會為您發佈小組件。 如果您的系統上已安裝「混搭」伺服器,則在您安裝 WebSphere Portlet Factory 時,只要在安裝期間提供正確的認證,便會自動產生名為 MashupServer 的伺服器配置,並配置成自動發佈小組件。

若要建置開發 WAR,請在「專案瀏覽器」畫面中,在專案名稱上按一下滑鼠右鍵。 按一下小組件 > 將小組件發佈至選用區,以發佈小組件。選取您要發佈的小組件,並按一下確定

當您的應用程式準備好要匯出至正式作業環境時,便會使用正式作業 WAR 檔。 正式作業 WAR 不包含開發公用程式,所以會比開發 WAR 小。 正式作業 WAR 必須手動匯出至伺服器。 若要建置正式作業 WAR,請在「專案瀏覽器」畫面中,用滑鼠右鍵按一下專案名稱。 按一下匯出,並選擇您環境特定的 WAR。

如果尚未選擇「發佈應用程式」功能,則需要在此處理程序完成後手動發佈或匯出 WAR 檔。 如果您已選擇「發佈應用程式」功能,則會為您將 WAR 檔發佈到伺服器。 這時會執行大量工作,所以發佈處理程序需費時 2 到 3 分鐘才能完成。

如果您使用 Lotus Mashups 的本端安裝,則依預設會啟用安全。 所以在 WAR 檔建立期間,可能會提示您輸入認證。 請使用 WebSphere Application Server 管理者認證。 同時,在讓發佈處理程序自動執行之前,請務必等待這個提示。 如果您忽略它,則提示會逾時,將不會自動發佈 WAR 檔。 在此情況下,您還是可以使用「WebSphere Application Server 管理主控台」手動安裝及配置 WAR 檔。

程序完成後, WebSphere Portlet Factory 會顯示您所安裝的特性集所適用的 README 編輯器。 請將這些檔案閱讀一遍,讀完後關閉檔案。 現在應該只剩下空的 (灰色) 工作區。

如果 Lotus Mashups 伺服器是遠端伺服器,則會在參考資訊畫面下看到一則錯誤訊息。 此訊息說明開發 WAR 以及包含該 WAR 的 EAR 均尚未發佈。 如果選擇不自動發佈 WAR,或無法使用伺服器,則需要手動發佈或匯出該 WAR。

修改 IBM WebSphere Portlet Factory 專案

您可以多種方式來修改 WebSphere Portlet Factory 專案。

例如,可以將特性集新增至專案,甚至將專案發佈至類型截然不同的應用程式伺服器。 也可以從專案建立 WAR,以修改專案。 可以從專案蹦現功能表使用所有這些選項,且可透過在「專案瀏覽器」中用滑鼠右鍵按一下專案來存取這些選項。

在蹦現功能表中,按一下內容 > WebSphere Portlet Factory 專案內容,即可新增特性集。 在「特性資訊」窗格中,您可以選取包含要在專案中使用之建置器的特性集。

您可以建置各種類型的 WAR。 在蹦現功能表中,按一下發佈應用程式,並從子功能表中選擇適當的項目。

按一下內容 > WebSphere Portlet Factory 專案內容 > 伺服器配置,便可檢視或變更專案可用的伺服器配置。

註: 修改專案時, WebSphere Portlet Factory Designer 會從專案中移除檔案,然後將檔案重新加入專案。 因此,您可能會看到修改作業將刪除特定檔案 (例如 web.xml) 的警告。 在修改作業完成時,會將已刪除的檔案新增回專案。 在您回覆警告對話框之前,有機會可以在備份位置中保留變更後的副本。 如果在要求您刪除或改寫時,您沒有保留變更後的副本,並指出全部皆是,則會遺失對已刪除或已改寫檔案所進行的任何變更。

關於使用遠端專案

如果您遵循部分簡單準則,就可以使用位於遠端機器上的專案。

遠端專案支援團隊開發,數個開發人員可以共用對相同專案的存取權。

遠端專案會將 IBM WebSphere Portlet Factory 的位置儲存在 J2EERoot\.bowstreet 配置檔中。 因此,如果兩個或多個人員嘗試使用相同的遠端專案,則都必須使用完全相同的專案目錄位置。 如果您嘗試將現有的遠端專案匯入工作區,而路徑與遠端專案 .bowstreet 配置檔中所指定的路徑不同,則可在 WebSphere Portlet Factory Designer 中看到錯誤。

移動資源

您可以變更資料夾在「專案瀏覽器」或「模型導覽器」的專案樹狀結構中出現的位置。

註: 當您開啟會參照要移動資料夾的資源時,將不會反映變更,除非您重新開啟該資源。 當您重新命名資料夾時,相同條件也適用。

若要移動「專案瀏覽器」樹狀結構中的項目,請遵循下列步驟:

  1. 請選擇下列其中一項:
    • 用滑鼠右鍵按一下資源,並從出現的蹦現功能表中選擇重構 > 移動
    • 按一下資源,並從主功能表中選擇重構 > 移動
    • 在「模型導覽器」中,用滑鼠右鍵按一下該資源,然後從出現的蹦現式畫面中選擇移動
  2. 在出現的對話框中按一下要將資源移動到的資料夾,然後按一下確定

重新命名建置器或設定檔項目

您可以重新命名建置器及設定檔項目,在部分情況下,您還可以編輯它們的定義。

在「專案瀏覽器」或「模型導覽器」中開啟模型或設定檔集之後,您可以從「大綱」中執行此項作業。

重新命名建置器或設定檔項目之前還要考慮下列事項:為了使參照一致,重新命名程序會在內部對那些參照執行簡式文字搜尋。 例如,如果一個建置器命名為 Page2,而另一個命名為 Page20,且您將 Page2 重新命名為 Pagex,則 Page2 與 Page20 的參照全都會找到。 若要清除 Page20 的參照,則需要預覽重新命名所導致的變更 (透過按 >下一步),並取消選取不想要變更的項目。

若要重新命名設定檔項目或建置器呼叫,請遵循下列步驟:

  1. 顯示「大綱」視窗:
    1. 選擇視窗 > 顯示視圖 > 其他
    2. 選擇一般 > 大綱
    3. 按一下確定
  2. 用滑鼠右鍵按一下「專案瀏覽器」或「模型導覽器」樹狀結構中的模型 (或設定檔集),並在出現的蹦現功能表中按一下開啟,以開啟包含要重新命名之建置器的模型 (或要重新命名其設定檔項目的設定檔集)。 開啟模型 (或設定檔集) 以移入「大綱」。
  3. 用滑鼠右鍵按一下「大綱」中要重新命名的項目,然後從出現的蹦現功能表中選取重新命名
  4. 重新命名建置器呼叫 (或重新命名設定檔項目) 對話框中輸入新名稱。
  5. 如果下一步按鈕已啟用,則按一下以顯示重新命名所選取項目時會發生的變更清單。 在部分情況下,重新命名會影響多個資源。 這些資源會在重新命名畫面中列出。 您可以選擇不更新清單中的一個以上的資源,而更新其他資源,但是通常您不會這樣做。
  6. 按一下完成以完成重新命名,或按一下取消以取消重新命名。

重新命名資源

您可以重新命名資料夾、模型或設定檔集。

若要從「專案瀏覽器」重新命名資料夾、模型或設定檔集,請遵循下列步驟:
  1. 選取資料夾、模型或設定檔集。
  2. 您可以用滑鼠右鍵按一下資源,然後從出現的蹦現功能表中選取重構 > 重新命名,或者按一下資源,然後從主功能表中選擇重構 > 重新命名
  3. 重新命名資源對話框中輸入新名稱。
  4. 按一下預覽,顯示重新命名所選取項目時會發生的變更清單。 在部分情況下,重新命名會影響多個資源。 這些資源會在預覽畫面中列出。 您可以選擇不更新清單中的一個以上的資源,而更新其他資源,但是通常您不會這樣做。
  5. 按一下確定以完成重新命名,或按一下取消以取消重新命名。 如果按一下確定,則會變更所選取的項目名稱,且會將其他資源的參照保持一致。

若要在「模型導覽器」中重新命名資源,則用滑鼠右鍵按一下該資源,從出現的蹦現功能表中選擇重新命名,然後輸入新名稱。

重構

IBM WebSphere Portlet Factory 提供延伸的支援,以透過專案瀏覽器及「Java 套件瀏覽器」重構。

建議透過「專案瀏覽器」重新建構,因為當您移動或重新命名「專案瀏覽器」中的資源時,所有的內部參照要一致。 如果您嘗試在標準「導覽器」中進行重構,則不必如此。

從「專案瀏覽器」中重構

您可以從「專案瀏覽器」使用 IBM WebSphere Portlet Factory Designer 的重構功能,以移動或重新命名專案資料夾或其中所含的資源。

若要重新命名樹狀結構中的資源,請在「專案瀏覽器」中按一下該項目,從功能表選擇重構 > 重新命名,然後在產生的對話框中輸入新名稱。 另外,您也可以依據項目,按一下滑鼠右鍵並從產生的蹦現畫面選擇重構 > 重新命名,然後在產生的對話框中輸入新名稱。

若要在樹狀結構中移動資源,請在「專案瀏覽器」中按一下該項目,然後依序按一下重構移動,然後在產生的對話框中按一下項目移動的目的地資料夾。 另外,您也可以用滑鼠右鍵按一下項目並從功能表選擇重構 > 移動,然後在產生的對話框中按一下項目移動的目的地資料夾。

建立保存檔

使用「Eclipse 匯出」功能來建立 IBM WebSphere Portlet Factory 保存檔,其中包含要在開發作業中共用的構件。

建立 WebSphere Portlet Factory 保存檔時,僅選取模型及支援檔案。 這會併入數個檔案,例如,HTML 頁面、.css 檔、JavaScript 檔、設定檔、資源軟體組以及為 LJO 建立的任何 Java 來源檔。

請勿併入依預設新增至新專案的任何檔案。 如果您在 WebSphere Portlet Factory 保存檔中併入其他專案檔,則該保存檔在匯入至其他專案時,可能會造成問題。 因為部分專案檔是專案特定的檔案,所以會發生問題。 良好的經驗法則是僅併入您建立的檔案。

  1. 在 Eclipse 中,按一下檔案 > 匯出,以開啟「匯出」精靈。
  2. 在「匯出」對話框中,按一下 WebSphere Portlet Factory > WebSphere Portlet Factory 保存檔,然後按下一步

    「匯出」對話框會在左窗格中顯示專案清單,並在右窗格中顯示各種內容檔。

  3. 在左窗格中,選取要併入的專案元件。 在右窗格中,選取要併入的任何內容檔。
  4. 如果您選取的任何項目與其他檔案有相依關係,請按一下選取相依關係,然後選取要在保存檔中併入的相依檔。

    如需相關資訊,請參閱對話框的說明。

  5. 保存檔案中,輸入要儲存 WebSphere Portlet Factory 保存檔的位置。
  6. 按一下完成,以建立並儲存保存檔。

匯入保存檔

您可以使用「 WebSphere Portlet Factory 保存檔」的「匯入」精靈,將資源從外部來源併入專案。

這些資源的格式必須是「IBM WebSphere Portlet Factory 保存檔」Zip 檔。
註: 「匯入 WAR」及「匯入 Ear」功能不會建立 WebSphere Portlet Factory 專案。 若要匯入 WebSphere Portlet Factory 專案,請使用匯入 > WebSphere Portlet Factory 保存檔
  1. 在「專案瀏覽器」中,按一下專案。
  2. 從主功能表列中,按一下檔案 > 匯入
  3. 在「匯入」精靈中,按一下其他 > WebSphere Portlet Factory 保存檔,然後按下一步
  4. 按一下瀏覽,選取包含要解壓縮並匯入專案之檔案的 Zip 保存檔。

    您還可以選取之前使用舊版「套件管理程式」建立的 pkg 檔案。

  5. 在匯入選項窗格中,展開左窗格中的階層,選取或清除代表已選取保存檔中資料夾的勾選框。
    使用下列選項,可以準確選取要匯入的資源:
    過濾器類型
    使用此項可以針對特定類型檔案過濾目前所選的項目。
    全選
    使用此項可以選取保存檔中的全部資源,並取消選取不想匯入的資源。
    取消全選
    使用此項可以取消選取保存檔中的全部資源,並選取要匯入的個別資源。
    如需相關資訊,請參閱對話框的說明。
  6. 至資料夾中,指定要作為匯入目的地的專案目標。

    匯入作業會一律將保存檔內容置於相對於專案可服務內容目錄的位置。 對於 Eclipse 專案,此為專案根目錄。 對於 Rational Application Developer 內嵌伺服器專案,此為專案根目錄下的 WebContent 目錄。 選取比內容目錄層次更深的資料夾不會有影響。

  7. 完成指定匯入選項之後,按一下完成

將特性集新增至專案

特性集提供便利的套裝功能方法,可供開發團隊成員使用。

特性集是建置器或一組建置器的必要檔案集。 特性集可包含模型、設定檔集、建置器及類別。 特性集不會增加應用程式的負荷,也不會增加與您嘗試實作特性無關的 WAR 檔的負荷。 您可以隨時在專案中新增或移除特性集。

請遵循此程序將特性集新增至 IBM WebSphere Portlet Factory 專案。

  1. 在「專案瀏覽器」中,用滑鼠右鍵按一下專案,然後按一下內容 > WebSphere Portlet Factory 專案內容 > 特性資訊,以新增特性集。
  2. 在「特性資訊」窗格中,您可以選取包含要在專案中使用之建置器的特性集。
  3. 將某特性集新增至專案後,按一下檔案 > 重新啟動,重新啟動 Eclipse 以適當載入與特性集相關聯的類別。
    註: 如果您將「試算表延伸」特性集新增至專案,並開啟包含「試算表」建置器的模型,則會看到一則模型產生錯誤 (com.bowstreet.webapp.engine.MethodGeneratorException)。 發生此問題的原因是當您開啟模型時沒有編譯類別。 重新啟動 Eclipse 可避免此問題。 如果在啟動 Eclipse 時已安裝「試算表延伸」特性集,或在專案建立期間新增特性集,便不會發生此問題。

刪除 IBM WebSphere Portlet Factory 特性集

您可以從專案中移除 WebSphere Portlet Factory 特性集。

移除特性集時,會從專案中移除所有與特性集相關的檔案。

  1. 用滑鼠右鍵按一下您要從中移除 WebSphere Portlet Factory 特性集的專案。
  2. 專案功能表中,按一下內容 > WebSphere Portlet Factory 內容 > 特性資訊,以顯示起始精靈頁面。
  3. 取消選取一個以上的特性集,再按一下套用,然後按一下確定
與選定特性集相關的所有檔案 (例如,模型、設定檔集、建置器及類別) 都會從專案中移除,而且會在「導覽器」中顯示已修訂的專案內容。

設定檔案字元編碼

您可以為建置器所使用的某些檔案,設定字元編碼。

WebSphere Portlet Factory 會將下列檔案預設成 UTF-8 字元編碼。
  • 讀寫「豐富型資料定義」XML 檔
  • 讀取內容插入建置器檔案,例如「用戶端 JavaScript™」及「樣式表」建置器所匯入的讀取內容插入建置器檔案
對於這類檔案,如果您必須使用 UTF-8 以外的多位元組字元編碼,您可以置換相關的內容。
  1. WEB-INF/config/cluster.properties 檔中,尋找下列內容。
    # This encoding is used by the Rich Data Definition builder when reading/writing RDD files:
    bowstreet.builder.rdd.file.encoding=UTF-8
    # This encoding is used when content inserter builders (JavaScript and Stylesheet) read files:
    bowstreet.builder.contentInserter.file.encoding=UTF-8
  2. 在您專案的 WEB-INF/config/ 檔中,指定您專屬的值。

    如果 override.properties 檔不存在,您可以建立它。

建立和開啟模型

您可以使用精靈來協助您建立各種模型。

此精靈會在模型中移入讓基本應用程式執行所需的全部建置器。 此精靈設計成具有自我記錄的功能且易於使用。 您可以在精靈中看到的選項取決於新增至專案的特性集。 您看到的精靈步驟進度要視您選擇建立的模型類型而定。

建立新模型

使用 IBM WebSphere Portlet Factory Designer 精靈來建立新模型。

  1. 請執行下列其中一項動作。
    • 按一下工具列中「新建」圖示 (工具列中的「新建」圖示) 旁邊的下拉功能表,然後按一下 WebSphere Portlet Factory 模型
    • 按一下工具列中的「新建」圖示 [工具列中的「新建」圖示],然後在「選取精靈」中按一下 WebSphere Portlet Factory > WebSphere Portlet Factory 模型,再按下一步
    • 按一下檔案 > 新建 > WebSphere Portlet Factory 模型
  2. 在「選擇專案」中,選取要建立新模型的專案,然後按下一步
  3. 在「選取模型」的模型類型下,選取所列出的其中一個模型類型,然後按下一步
    空白
    沒有建置器呼叫。 您必須新增所有建置器呼叫,以提供必要的應用程式功能。
    Main and Page(建議)
    包括名為 page1 的「頁面」建置器呼叫,以及名為 main 的「動作清單」建置器,它在應用程式執行時呈現該頁面。
    資料庫視圖及表單
    提供最快速的方法來建立使用關聯式資料庫資料的全功能性應用程式。 使用此精靈,可以建立 Portlet、小組件以及 Web 應用程式。 您可以透過修改直欄標頭、併入資料分頁及啟用明細往下探查功能,來自訂使用者介面。
    REST 型視圖及表單
    提供最快速的方法來建立使用 REST 服務資料的全功能性應用程式。 使用此精靈,可以建立 Portlet、小組件以及 Web 應用程式。 您可以透過修改直欄標頭、併入資料分頁及啟用明細往下探查功能,來自訂使用者介面。
    簡式 "Hello World" 模型
    使用「動作清單」建置器及「頁面」建置器,在現有頁面上,顯示您指定文字的文字行,或顯示您指定的任何完整 HTML 頁面。 您可以選擇性地將模型部署為 Portlet。
    SQL 資料服務服務提供者
    建立服務,以便對關聯式資料庫建立基本搜尋、建立、擷取、更新和刪除作業。 將建立的模型用作資料服務使用者介面服務消費者精靈所建立模型的服務提供者。
    資料服務使用者介面服務消費者
    為選定服務建置完整的使用者介面 (UI)。 使用 SQL 資料服務服務提供者精靈之後,使用此精靈會自動針對「SQL 資料服務服務提供者」建立的模型中服務呼叫的作業,產生頁面、表單、動作、按鈕和其他使用者介面元件。
    清單及明細服務消費者
    使用「視圖及表單」建置器來顯示資料服務的資料。 它可以建立資料的表格及詳細視圖。 指定 Portlet 名稱,該名稱還用來命名模型中的建置器呼叫。 指出定義要使用之作業的服務提供者模型,以及提供主視圖的服務作業。
    行動式清單及明細服務消費者
    建置行動式裝置的模型,以顯示來自資料服務的資料。此精靈會使用「視圖及表單」建置器,建立資料的表格與詳細視圖。
    資料庫服務提供者
    提供對應於針對 J2EE 資料來源執行之 SQL 陳述式的作業介面。 專案必須具有有效的伺服器配置。 您可將此服務作為 Web 服務顯現。 定義 SQL 資料來源及要執行的 SQL 陳述式。
    註: 如果專案中有選用的套件,則您可以在模型類型下看到下列其他項目。
    範例 Main and Page
    「建置器」範例的一部分。 用來建置自訂的新建模型精靈。
    Domino 服務提供者
    可讓您根據 Domino 資料建立服務。 該精靈會連接至使用指定視圖的 Domino 資料庫,並建立可提供檢視、建立、編輯及刪除文件之存取權的資料服務模型。
    註: 執行此精靈之前,請在內容檔 (位於 WEB-INF/config/domino_config) 中宣告 Domino 伺服器主機名稱及認證。 修改所提供範例檔案的副本。

    您可將該服務作為 WSDL 服務匯出。

    如果您選取的模型類型包含頁面,則會開啟「頁面設定」視窗。 若為其他模型類型,請回答正使用或定義之服務特定的其他問題。

  4. 選擇性的: 在「頁面設定」中,選取 HTML 程式碼的下列其中一個選項,然後按下一步
    • 匯入的頁面

      使用 HTML 及 JSP 程式碼的外部檔案來建置頁面。 這是偏好的作法。

      要匯入的頁面中,您可以指定自己的檔案或使用預設檔案。

    • 簡式頁面

      可讓您輸入 HTML 及 JSP 程式碼來建置頁面。 這對於進行快速原型設計非常有用。

  5. 在「儲存新模型」中,輸入或選取要儲存新模型的目錄。

    模型必須儲存在 WebSphere Portlet Factory WEB-INF/models 目錄下的目錄中。

  6. 模型名稱中,指定新模型的名稱,然後按一下完成

關於開啟模型

您可以從「專案瀏覽器」或「模型導覽器」中開啟模型。

所有現有的模型都儲存在 IBM WebSphere Portlet Factory WEB-INF/models 目錄中。 「模型導覽器」會呈現「專案瀏覽器」的子集並使存取模型及設定檔更容易。

  • 當您在 WebSphere Portlet Factory Designer 中開啟模型時,其名稱會新增至檔案功能表底部的 MRU (最近使用) 清單。 在後續的 WebSphere Portlet Factory Designer 階段作業中,按一下模型名稱即可開啟模型。
  • 您也可以透過執行下列其中一個動作,從「模型導覽器」視圖開啟模型。
    • 按兩下模型的名稱。
    • 在模型名稱上按一下滑鼠右鍵並按一下開啟

在開啟模型時, WebSphere Portlet Factory Designer 通常會顯示下列模型相關的畫面。

建置器呼叫清單
顯示於「大綱」視圖中,此清單會列出模型的建置器呼叫。
模型編輯器
視景的「編輯區」讓您能存取可開啟來進行編輯的模型。 例如,「應用程式樹狀結構」畫面可以存取建置器呼叫已建立及新增至模型的所有元素。

測試服務提供者

請遵循下列步驟,以測試服務提供者。

  1. 將「服務測試」建置器置於包含要測試之資料服務的模型中。 此模型必須包含定義資料服務的「服務定義」建置器及「服務作業」建置器。
  2. 選取資料服務並啟用產生 main 方法,以配置「服務測試」建置器。
  3. 執行模型,並在「輸入」頁面提供服務所需的任何輸入 (必要的話)。
  4. 檢視「結果」頁面上的服務輸出,以判斷服務是否傳回期望值。
  5. 若要檢視所測試之服務的相關資訊,請在「服務測試」建置器中啟用併入文件輸入,並重新執行模型。 服務及其作業相關的資訊即會顯示在「索引」頁面上。

新增建置器呼叫至模型

您可以將建置器呼叫新增至開啟的模型。

  1. 請執行下列其中一項:
    • IBM WebSphere Portlet Factory Designer 工具列、應用程式樹狀結構視圖工具列或大綱視圖工具列上,按一下新增建置器呼叫圖示 [ 建置器挑選器圖示]。
    • WebSphere Portlet Factory Designer 功能表列中,按一下模型 > 新增建置器呼叫

    會開啟建置器挑選器視窗。

  2. 請執行下列其中一項:
    • 種類名稱下,按一下資料夾以列出該種類中的可用建置器。
    • 在搜尋方框中,輸入字母以列出建置器關鍵字,並按一下關鍵字以列出與該關鍵字相關聯的可用建置器。

    畫面上會顯示建置器清單。

  3. 建置器下,導覽及選取清單中要新增至模型的建置器項目。

    如果建置器清單較長 (例如,在所有種類中),請選取清單中的一個項目,並鍵入建置器名稱的第一個字母。 此時會選取以該字母開頭的第一個建置器。 重複鍵入字母,會選取以該字母開頭的下一個建置器。 請鍵入不同的字母以重複該程序。

  4. 按一下確定

    建置器呼叫編輯器會在應用程式樹狀結構視圖中開啟。

  5. 在建置器呼叫編輯器中,指定建置器呼叫的輸入。
  6. 請執行下列其中一項:
    • 按一下套用儲存輸入,並將建置器新增至模型。 建置器呼叫編輯器仍會開啟,可讓您進行其他變更。
    • 按一下取消捨棄輸入,不執行將建置器新增至模型,並關閉建置器呼叫編輯器。
  7. 當您完成指定輸入時,按一下確定以儲存對模型的任何已變更輸入,並關閉建置器呼叫編輯器。
若要將建置器呼叫置於頁面上以及使用各種輸入小組件,請使用建置器呼叫編輯器。 您可以在建置器呼叫清單中,管理模型的建置器呼叫。

執行建置器呼叫編輯器

您可以在模型中執行現有建置器的建置器呼叫編輯器。

在「大綱」視圖的名稱下,按兩下建置器名稱。

會在建置器呼叫編輯器視圖的模型標籤中,開啟所選建置器呼叫的編輯器。

將建置器呼叫轉換為其他類型

請遵循下列步驟,將建置器從一種類型轉換為另一種類型。

這些步驟可用作將「按鈕」建置器轉換為「鏈結」建置器的一個範例。

  1. 開啟建置器呼叫清單,並選取要轉換的「按鈕」建置器。
  2. 用滑鼠右鍵按一下選項,並執行下列其中一項:
    • 按一下轉換 > 鏈結
    • 按一下轉換 > 轉換為,並在建置器挑選器中選取要轉換的建置器,再按一下確定

建置器會轉換為所選取的類型,且會更新建置器呼叫清單,以反映該轉換。

原始建置器的輸入會保留下來,並會在適當的時候,很明智地套用至新的建置器。 在引用的範例中,按鈕標籤輸入值會套用至鏈結文字輸入。 原始建置器的所有輸入都會新增至新的建置器編輯頁面中。

進行建置器呼叫清單排序及過濾

如果您要以非數值方式組織清單,則排序清單十分有用。

如果不要顯示模型中的建置器子集 (例如那些包含特定字串的建置器),則過濾就十分有用。
  • 若要將建置器呼叫清單排序,請執行下列步驟:
    1. 按一下清單中的直欄標頭。 例如,按一下類型,以根據建置器呼叫類型 (動作清單、屬性定序器等) 的字母順序排序清單。 請切記,不論清單的排序順序為何,都會根據建置器呼叫的號碼順序來執行它們。
  • 若要過濾建置器呼叫清單,請執行下列步驟:
    1. 開啟視圖下拉功能表,並選取過濾器...
    2. 過濾器對話框中,選擇過濾器型樣。 型樣包括:「開始於」、「包含」及「不包含」。
    3. 輸入搜尋字串。 若要執行區分大小寫的搜尋,請啟用此勾選框。
    4. 按一下確定
    符合搜尋準則的建置器呼叫會顯示在建置器呼叫清單中。

關閉模型

關閉模型會從模型工作區中移除其相對應的標籤。

若要關閉模型,請執行下列步驟:
  1. 按一下要關閉之模型標籤上的 X
  2. 或者,也可以用滑鼠右鍵按一下名稱標籤,並選擇關閉
在任一情況下,如果模型包含尚未儲存的變更,則儲存資源 對話框會詢問您是否要在關閉之前儲存模型。

刪除模型

刪除模型會將它從專案中移除。

您應該也將模型從已發佈的應用程式中移除。

  1. 在「模型導覽器」視圖中,用滑鼠右鍵按一下模型,再按一下刪除
  2. 確認資源刪除對話框上,按一下
即會從相關的 IBM WebSphere Portlet Factory WAR 中刪除模型。

重新命名模型

若要重新命名模型,可以選擇下列其中一項:

  • 使用「導覽器」視圖:
    1. 在專案「導覽器」視圖中選取模型。
    2. 按一下滑鼠右鍵,並選擇重新命名
    3. 輸入新名稱,然後按 Enter 鍵。 請務必併入 .model 字尾作為新模型名稱的一部分。
  • 使用「另存模型」特性: 使用此特性,可以在保留原始模型的同時,以不同的名稱儲存現有模型的副本。
    1. 將焦點置於 IBM WebSphere Portlet Factory Designer 中的模型上。
    2. 開啟 Eclipse 檔案功能表,並選擇另存新檔
    3. 另存模型對話框中,選取要儲存模型的目錄。
    4. 輸入模型的替代名稱,並按一下確定

儲存模型

儲存模型會將所有建置器呼叫變更及模型內容變更,都確定至磁碟上的模型檔。

有三種方式可以儲存模型:
  • 按一下工具列中的儲存圖示 [「儲存編輯器內容」按鈕]。
  • 檔案功能表中,選擇另存新檔
  • 使用鍵盤上的 Control-S 鍵。

執行模型

在開始執行 (啟動) 模型之前,必須至少要建立一個「IBM WebSphere Portlet Factory 模型」啟動配置。

依據啟動配置的定義方式,您可以:

  • 執行具名 (特定) 模型。
  • 執行位於現行作用中「模型編輯器」內的模型。

您還可以藉由將模型的 URL 輸入瀏覽器視窗,來執行模型。

關於執行模型中的特定方法

藉由指定 URL 來執行模型時,可讓您呼叫模型中的特定動作,並將明確設定檔傳遞至模型。

如果您沒有在模型的 URL 中指定動作,則 IBM WebSphere Portlet Factory Servlet 會執行模型的 main 方法或動作清單。 您可以藉由在 URL 中指定動作,來強制 WebSphere Portlet Factory 執行不同的動作。
例如,若要執行名為 GetCustomers 的方法,URL 應為:
http://localhost:7001/mymodels/CustomerModel/Action!GetCustomers
註: 您不能使用 URL 來執行採用引數的方法。

在作用中的模型編輯器中執行模型

如果您的專案已發佈,則可在作用中的模型編輯器中,執行現行模型。

請使用下列其中一種方法。

  • 在工具列中按一下執行圖示,然後按一下執行作用中模型
  • 按一下執行 > 執行,然後按一下執行作用中模型
  • 從鍵盤鍵入 Ctrl+F11,然後按一下執行作用中模型

Eclipse 會保存已啟動程式的歷程。 若要重新執行之前已啟動的模型,請按一下執行 > 執行歷程,然後按一下清單中的名稱。

從瀏覽器執行模型

將模型的 URL 輸入瀏覽器視窗,即可執行模型。

將模型的 URL 輸入到瀏覽器視窗中。 您可以在模型內容對話框中找到模型的 URL,在「導覽器」視圖中,用滑鼠右鍵按一下模型名稱,並選擇內容選項,即可顯示該 URL。

使用設定檔執行模型

您可以在 URL 中指定要套用至模型的設定檔。

使用與下列範例類似的 URL: http://localhost:7001/factory/webengine/URLTester/Action!main/Profile!ProfileSet1!ProfileB$ProfileSet2!ProfileA

或者,您可以使用「套用的設定檔」視圖,來套用設定檔組合至作用中模型編輯器的模型,然後執行該作用中模型。

執行具名模型

您可以從 IBM WebSphere Portlet Factory Designer 執行具名模型。

  1. 按一下執行 > 執行配置
  2. 按一下 WebSphere Portlet Factory 模型
  3. 選取清單中的名稱。
  4. 按一下執行按鈕。

比較模型

您可以使用 Eclipse 比較編輯器來比較 IBM WebSphere Portlet Factory 專案中的模型。

當模型檔與其他模型檔相互比較,或與本端工作區歷程或儲存庫中不同版本的相同模型相互比較時,便會啟動模型比較編輯器。 模型比較編輯器的功能同於標準 Eclipse 比較編輯器。

比較編輯器會使用「比較/修補」喜好設定頁面中的設定。 按一下視窗 > 喜好設定 > 一般 > 比較/修補,即可檢視及變更您的設定。

比較作業會使用 Eclipse 結構檢視器及比較編輯器,來顯示專案中兩個模型之間的差異。

  1. 在「專案瀏覽器」或「模型導覽器」視圖中,選取要比較的模型。
  2. 在選項上按一下滑鼠右鍵,並按一下相互比較 > 彼此

比較模型檔時,會在編輯區中開啟模型比較編輯器。 模型比較編輯器由「模型結構比較」視圖及「模型比較」編輯器所組成。

「模型結構比較」視圖會顯示樹狀結構,以下列詳細程度代表模型的差異。
  • 樹狀結構的最上層節點對應於模型本身。
  • 樹狀結構的第二層節點代表兩個模型之間的不同建置器呼叫。
  • 樹狀結構的第三層節點代表每個建置器呼叫之建置器輸入之間的差異。
按兩下「模型結構比較」視圖中的任何節點,即可放大以樹狀結構節點代表的變更。

在「模型結構比較」視圖中選取最上層節點時,「模型比較」編輯器會顯示建置器呼叫的比較,其類似於啟動模型編輯器時的「大綱」視圖。 如果您在樹狀結構中選取建置器呼叫節點或建置器輸入節點,則「模型比較」編輯器會以 XML 文字顯示選定節點的比較。

在「模型比較」編輯器中,您可以在建置器呼叫清單中瀏覽所有差異,並複製進行比較之資源之間的強調顯示差異。 您可以將變更儲存到在模型比較編輯器中製作的資源。 使用比較編輯器的工具列,便可讓下列指令可用於工具列按鈕中。

控制上代窗格的可見性
顯示兩個不同模型的共同上代。 如果您使用「團隊」版本管理支援,則會在下列狀況下發生三方比較。
  • 如果您比較發生衝突的檔案。
  • 如果您比較從分支合併的檔案。
系統會在要針對其比較衝突或合併變更的儲存庫中,判斷共用上代。 這個指令會判斷第三個編輯器的可見性。 依預設,上代窗格是看不見的。
全部從左邊複製到右邊
將左窗格中的所有建置器呼叫複製到右窗格的檔案中,讓兩個模型的內容一模一樣。
將全部非衝突變更從右邊複製到左邊
將全部非衝突建置器呼叫從右窗格複製到左窗格。 您必須個別複製衝突的建置器呼叫。
將現行變更從左邊複製到右邊
將左窗格中強調顯示的建置器呼叫複製到右窗格的強調顯示位置中,以合併兩個檔案中的變更。 這個動作會將建置器呼叫改寫或插入至右窗格的模型中 (如果適當的話)。
將現行變更從右邊複製到左邊
將右窗格中強調顯示的建置器呼叫複製到左窗格的強調顯示位置中,以合併兩個檔案中的變更。 這個動作會將建置器呼叫改寫或插入至左窗格的模型中 (如果適當的話)。
選取下一個差異
強調顯示在進行比較的資源之間找到的下一個不同建置器呼叫。
選取前一個差異
強調顯示在進行比較的資源之間找到的前一個不同建置器呼叫。

將模型置於儲存器內

將模型置於儲存器內可讓模型插入網頁中。

  1. 開啟包含要插入模型之頁面的模型。
  2. 在開啟的模型中,新增「模型儲存器」建置器,以將模型置於儲存器內。
  3. 在「模型儲存器」建置器內,於頁面位置輸入中,指定要放置模型的頁面。

    此特性容許將多個模型放置在一個頁面上。

  4. 模型輸入中,使用參照選擇器來指定要置於儲存器中的模型,然後按一下確定,將建置器新增至該模型中。
  5. 選擇性的: 若要減少載入時間,您可以在可讓您平行載入 Portlet 的 IBM® WebSphere® Portal 伺服器中,使用平行 Portlet 呈現或 Web 2.0 特性。

關於在儲存器中使用模型

模型是您可自行包含之建置器呼叫的集合。

您可以使用「模型儲存器」建置器來自行包含模型,並容許將其插入網頁中。 搭配使用多個模型與模型儲存器,有兩個主要優點:

針對開發人員
使用模型儲存器可以更輕鬆地共用開發。 多個開發人員可以在頁面內容及建立方面協同作業。 每個開發人員都可以獨立工作,並會開發出可以提供同一頁面之特定內容的模型。
針對 Web 使用者
「模型儲存器」建置器會提供一致的頁面環境定義。 併入內含模型的網頁可讓使用者一直處於該頁面的環境定義中,即使是在他們展開至模型以搜尋其他內容時,也是如此。 這會以使用者為導向,還可以協助使用者存取頁面上其他模型中的內容。

使用儲存器建置器,多位開發人員都可以開發部分頁面,並將其個別模型新增至頁面。 每個模型都會指定給儲存器,它是要顯示之模型的位置保留元。 模型還可以包含儲存器,可以在儲存器內無限制地巢狀設定模型。 在存取頁面的使用者看來,頁面會顯示為統一的整體,提供各種內容。 然而,如果使用者按一下進入每個模型以檢視詳細資訊,則頁面的整體環境定義會保持不變,而只變更頁面的特定模型區段。

協同作業 Portlet 模型的準則
如果您將包含「協同作業 Portlet 來源」建置器的模型新增至模型儲存器,則需要遵循部分準則。
  • 重新產生期間必須可以解析包含「協同作業 Portlet 來源」建置器的模型名稱。 例如,名稱不可為間接參照。
  • 在模型中僅使用「Java Portlet 標準 2.0 (JSR 286)」事件。 只有那些類型的事件才會傳送到模型儲存器。 模型儲存器無法處理 WSDL 型事件。
註: 不支援將包含「協同作業 Portlet 目標」建置器的模型新增至模型儲存器。

如果您使用 6.1.2 版之前的 IBM WebSphere Portlet Factory Designer 版本,若要辨識具有「協同作業 Portlet 來源」建置器的模型新增項目,請在 WebSphere Portlet Factory Designer 中開啟任何現有的模型、重新產生並儲存它們。

在儲存器中使用模型的要訣
  • 模型儲存器內的輸入與模型內的輸入用法相同。
  • 效能與儲存器中鏈結的模型數量相關。 模型儲存器中鏈結的模型越多,效能就越低,但由於是短小的片段,因此程式碼也較容易管理。
  • 請勿使用頁框。 模型儲存器內不支援頁框。
  • <HTML><body> 標籤從您要插入至儲存器的模型中移除。 在您將模型插入至儲存器之前,特別是在 <body> 標籤已指派給樣式時,請確保已經從模型中移除 <HTML><body> 標籤。 此技術可以防止模型中的樣式取代頁面上其他模型的樣式。
  • 如果您是使用輸入對映,則必須指定模型中表單的名稱。 如果尚未命名表單,則會將輸入指定給建置器所找到之最先列出的表單。
  • 如果儲存器內的模型使用表單,則外部模型中的任何表單都不應封裝「模型儲存器」建置器。 如果外部模型具有含括「模型儲存器」建置器呼叫的表單,且儲存器中的模型也包含表單,則即使使用者試圖提交內部表單,也會一律提交外部表單。 如果兩個表單標籤都位於模型儲存器或入口網站儲存器的前面或後面,則外部模型可以安全地使用表單。 如果內含的模型有自己的表單標籤,則表單標籤絕不應該封裝儲存器。
  • 將一定數量的樣式套用至使用者介面,讓模型可以採用它們所插入至頁面的外觀及操作方式。
  • 僅保留佈置的基本 HTML。
  • 使用「匯入的頁面」建置器而非「頁面」建置器來建構 HTML 頁面。 此設定可讓您控制使用者介面。 建構來源 HTML 的絕對 URL,可以在必要時,從伺服器中移出 HTML。 透過配置檔項目或設定檔項目,可以控制絕對 URL。

搭配使用錯誤處理與儲存器中的模型

每個模型都應該宣告它的錯誤頁面及錯誤資料。

適當時,應該使用一般記載服務來記載錯誤資訊。 同樣多的資訊應該儲存在錯誤訊息的開放式文字中,例如回覆碼、相關狀態資料及輸入參數。

可能的話,請遵循下列準則:

  • 設定指向模型內錯誤處理功能的錯誤處理常式。 此設定會捕捉所有程式碼沒有捕捉到的異常狀況。 如果您建置將由其他使用者使用的模型,則應該將錯誤碼建置在模型內。 這樣還可以協助您測試模型。
  • 建立從服務傳回的一般錯誤綱目,以提供協助。

而且,「模型儲存器」建置器可讓您指定發生錯誤時載入的模型。 此模型可以顯示錯誤訊息,還可能會顯示連到其他頁面的鏈結。

產生模型報告

您可以針對專案中使用的模型,產生報告。

「模型檢驗」工具會產生專案中模型的相關報告。 此報告會彙總模型的建構方式,以及模型是否遵循部分所記載的最佳作法。

如果您在 WebSphere Portlet Factory Designer 中開啟專案,則您可以產生並檢視所使用之模型的摘要報告及分析。 輸出包括 HTML 檔及多個 CSV 檔。 HTML 檔提供可用於改進模型之最佳作法的提示。

  1. WebSphere Portlet Factory Designer 中,按一下專案 > 建置模型報告
  2. 在「檢視產生的報告」中,按一下
  3. 在「編輯」視圖中,瀏覽器視窗會開啟所建立的 HTML 檔。

    輸出檔儲存在專案資料夾下的 Reports 資料夾中,具有唯一名稱,因此您可以維護在不同時間產生的輸出。 您可以使用產生的 CSV 檔作為試算表程式的輸入,以執行進一步的格式化及分析作業。 在使用完這些檔案之後,可以刪除這些檔案。

  4. 若要檢視先前產生的 HTML 檔,請在「專案瀏覽器」中,導覽至 Reports 資料夾,用滑鼠右鍵按一下檔案,然後按一下開啟工具 > Web 瀏覽器

    該檔案會在內嵌 Eclipse 的 Web 瀏覽器中開啟。

產生的 HTML 檔包含下列資訊。
  • 專案中的模型摘要
  • 所檢查模型中使用的建置器摘要
  • 相同類型建置器數目的分析
  • 依模型的建置器使用情形

關於模型報告

所產生模型報告的內容由所定義的檢驗確定。

輸出檔

所有報告都會寫入專案的 Reports 目錄。報告檔以下列標準格式命名。

Model Report for project nametime.html 

name 值指出專案名稱。 time 值指出產生報告的日期和時間。 數個預設檢驗還會產生 CSV 檔,其中包含來自報告的建置器使用情形統計資料。 使用這些 CSV 檔,您可以對資料進行排序及重新排列,以符合您自己的需要。 所有報告檔都具有相同的時間,因此您可以識別在同一執行期間產生的那些報告檔。

解譯報告內容

檢驗可協助您快速地識別可能沒有遵循最佳作法的模型,或者已經建置而很難維護及理解的模型。 預設檢驗集重點關注 WebSphere Portlet Factory 工程小組在檢閱客戶模型時所遇到的部分最常見問題。 例如,常見問題是在單一模型中混合使用者介面 (UI) 及資料存取建置器,而不是將那些類型的建置器分別置於提供者(資料存取)及消費者 (UI) 模型中。

預設檢驗集以 WebSphere Portlet Factory 產品 Wiki 中記載的最佳作法為基礎。

報告自訂作業
模型報告工具提供多個預設檢驗,但該工具無法提供專案所需的每一個可能的檢驗。 該工具設計用來進行自訂作業及延伸。 可以進行下列類型的自訂作業及延伸。
  • 變更現有檢驗的配置內容,以變更檢查模型時使用的處理程序或準則
  • 以現有實作為基礎,定義新的檢驗。
  • 定義新的 Java 型檢驗程式,以及對應的檢驗定義。
在您可以順利自訂報告之前,您需要瞭解如何使用工具配置檔來定義並控制在模型上執行的檢驗集。 該工具使用兩個配置檔。
  • basic_inspections.xml 檔案會定義檢驗集。
  • basic_builder_types.xml 檔案會將建置器集指派給各種類型。 在其他用途中,類型可讓檢驗探索模型是包含使用者介面 (UI)、資料存取還是其他類型的建置器。
這些檔案可在 WebSphere Portlet Factory 安裝資料夾根目錄的路徑中找到。 下列路徑用於 7.0.1 版本。
\Designer\eclipse\plugins\com.bowstreet.designer.core_7.0.1\config

如需建立自訂檢驗的相關資訊,請參閱 WebSphere Portlet Factory 產品 Wiki。

新增樣式及類別至頁面元素

請遵循下列步驟,針對頁面上任何已命名的元素,新增或修改類別或樣式。

當您在設計視圖中使用模型並選取頁面元素時,您可以開啟內容編輯器。
  1. 選取想要的頁面元素,並用滑鼠右鍵按一下該元素。
  2. 選取顯示內容。如此即會開啟「內容編輯器」,其中包含所選的樣式類別或個別樣式。 此編輯器會顯示頁面上已經存在之樣式表的所有樣式。 您可以將新的樣式表新增至頁面,並新增外部樣式表的參照,以便可以參照在入口網站層次定義的類別。 對於每個變更,您可以改寫附加附加到前面現有的類別元素。
    1. 按一下背景,以變更此元素的背景樣式表標籤。
    2. 按一下字型邊距,以變更此元素的字型及邊距樣式表標籤。
    3. 用滑鼠右鍵按一下樣式元素並按一下編輯,以直接編輯給定樣式表中的樣式。
    4. 用滑鼠右鍵按一下樣式元素並按一下移除,以移除該元素。
  3. 按一下將樣式表新增至頁面...,以將外部樣式表新增至此頁面。 如此即會開啟檔案開啟對話框。 選取想要的樣式表並按一下開啟
  4. 若要基於您所做的變更來匯出樣式類別,請選取想要的樣式元素,然後按一下匯出...,如此即會開啟「匯出」對話框。 選取樣式表,輸入類別名稱,然後按一下確定,以將變更的類別新增至所選的樣式表。

建立頁面和表單

應用程式中的頁面及表單可用來檢視資料,以及用於使用者與應用程式邏輯及資料間的交談作業。

IBM WebSphere Portlet Factory 應用程式中,這些頁面通常不是靜態的,而是由各種直接決定頁面使用者介面 (UI) 的建置器,或間接影響頁面內容的其他建置器來操作。

表單與頁面截然不同,因為它們的開發方式並不相同。 開發表單主要是使用兩個高階建置器 (例如,「資料頁」建置器及「資料欄位修飾元」建置器),來實作顯示及提示資料的 UI。

開發內容頁面是使用大量低階建置器,來實作 HTML 功能的各個方面 (例如,「頁面」建置器)。

匯入現有頁面和表單

您可以將現有的 HTML 或 JSP 頁面匯入模型,來實作您 Web 應用程式的使用者介面。

IBM WebSphere Portlet Factory Designer 中,若要執行此操作,請使用「匯入的頁面」或「匯入的目錄」建置器。 基於原型化目的,可以使用「頁面」建置器來建立簡式 HTML 或 JSP 頁面。

針對那些頁面中要與模型之其他部分互動的任何部分,或提供給不同類型使用者使用的任何部分,您可以將相對應建置器的呼叫指派給頁面中的具名 <input /><span /> 標籤。 例如,您可以使用「選取」建置器的呼叫來取代 HTML 選取清單。 如此可讓您根據在模型中其他位置定義的方法、變數或使用者輸入,來決定可選取之選項及選取清單的其他性質。

將 HTML 及 JSP 頁面匯入模型

您可以將現有的 HTML 及 JSP 頁面引入模型中。

請使用下列其中一種方法:

  • 使用「匯入的頁面」建置器匯入個別頁面。
  • 使用「匯入的目錄」建置器匯入目錄中的所有頁面。

    「匯入的目錄」建置器僅會將指定目錄中的 HTML 及 JSP 檔案新增至模型。

    註: 「匯入的目錄」建置器不會匯入已匯入目錄中頁面所鏈結的頁面,或所匯入目錄中包含的任何目錄。
註: 需要重新實作使用 response.sendRedirect() 的 JSP 頁面,才能使用 IBM WebSphere Portlet Factory 的頁面處理器。

顯示資料

WebSphere Portlet Factory 應用程式中,您可以使用幾項技術的其中一項來顯示資料,其中部分技術是以預期的伺服器環境為目標,並採用不同程度的自動化功能。

使用「資料頁」及「資料欄位修飾元」建置器
「資料頁」建置器顯示頁面的變數中所儲存的資料。 「資料欄位修飾元」建置器及資料的相關綱目提供此「僅限檢視」表單的外觀及行為。 使用「資料頁」及「資料欄位修飾元」時,您需要新增服務呼叫、SQL 陳述式,或可將要顯示之資料移入變數的其他建置器呼叫。
使用個別建置器實作資料的顯示及外觀
如果您要嚴格控制資料的顯示方式,您可以使用個別建置器 (例如「重複區域」、「文字」、「動態表格」等) 來顯示資料。 在大部分情況下,與使用「資料頁」及「資料欄位修飾元」建置器相比,實作您自己的顯示架構需要做更多的工作。 然而,如果是顯示少量的靜態資料,或是對表單欄位的外觀及行為進行大量細部調整,使用個別建置器可能更有效率。

一般而言,應嘗試使用「資料頁」及「資料欄位修飾元」建置器。 如果它們無法輕鬆操作資料,或者您發現需要新增許多「資料欄位修飾元」建置器呼叫,來實作所需的顯示方式及行為,請使用低階建置器呼叫。

修改資料頁元素的佈置

您可以使用多種方式來修改資料頁面元素的佈置。

使用下列方式,可以修改模型中的頁面自動化元素。
  • 在「設計」畫面中使用拖放作業,以重新排列頁面自動化元素,並根據標準設計佈置型樣,建立新佈置。

    在大部分頁面上,您都可以使用拖放作業來重排直欄及列。 使用 WebSphere Portlet Factory Designer 選用區中的佈置工具,您還可以將佈置型樣拖放至「設計」畫面中您的頁面上。

  • 使用資料佈置範本,可以修改頁面佈置。

    使用「資料佈置」建置器,您可以將模型中的資料頁面欄位對映至資料佈置範本中的目標,並設定欄位類型。 使用資料佈置範本,您可以建立可重複使用之自訂型樣的支援。

  • 在資料頁面佈置中,直接編輯 HTML 程式碼。

    使用此特性,您可以完全控制 HTML 頁面佈置,並可有效地停用頁面的自動產生作業,但會失去模型中頁面自動化支援的好處。因此,只有在您有一些不尋常的佈置,而且真的需要精確地控制顯示畫面時,才使用此功能。

透過拖放修改頁面佈置

您可以在「設計」畫面中使用拖放作業來修改頁面自動化元素。

WebSphere Portlet Factory Designer 的「設計」畫面中,使用拖放作業在頁面上進行變更。
  1. 在模型編輯器中,從「應用程式樹狀結構」或「頁面」畫面中,存取並選取頁面。
  2. 按一下設計標籤,以在「設計」畫面中顯示頁面佈置。
  3. 若要移動元素,請在頁面上,選取列或直欄的群組。

    選取的元素周圍會有藍色的粗邊框。

    1. 當顯示移動游標時,按一下選取的元素,將其拖放至目標位置。
    2. 若要復原任何拖放作業,請按一下編輯 > 復原
  4. 若要根據標準設計佈置型樣建立新的佈置,請使用選用區。
    1. 在「設計」畫面中,按一下顯示選用區圖示,以顯示可將建置器新增至模型的設計工具及指令清單。
    2. 按一下佈置工具並選取其中一個佈置型樣。
      • I 佈置
      • 插入網格
      • 顛倒 T 佈置
      • 佈置直欄
      • 佈置列
      • T 佈置
      • 兩個直欄
    3. 將項目拖曳至頁面,將游標移至頁面自動化元素之上,並在元素上放置所選項目。

      「顯示管理程式」建置器即會新增至模型。該建置器會在佈置的兩個直欄區段之間分割欄位。 該建置器會新增具有所選佈置型樣的佈置儲存器,並將其保留為空白。

      如果模型中已經存在「顯示管理程式」建置器,則您會收到錯誤訊息。 您可以刪除現行「顯示管理程式」建置器。 此動作會移除現行佈置變更,以便您可以進行新的變更。

    4. 使用拖放作業,將元素移至新佈置儲存器。

      若要復原任何拖放作業,請按一下編輯 > 復原

  5. 執行模型以測試您的變更。

使用資料佈置範本修改頁面佈置

您可以使用資料佈置範本,來修改「資料頁面」建置器所建立的頁面佈置或使用「資料頁面」建置器之建置器所建立的頁面佈置。

「資料佈置」建置器使用指定的資料佈置範本及佈置欄位對映,來修改「資料頁面」建置器所產生的佈置。 您可以使用產品中提供的其中一個資料佈置範本或您自己的範本,來提供可重複使用的自訂型樣支援。

  1. WebSphere Portlet Factory Designer「頁面」畫面的開啟模型中,選取要修改的頁面。
  2. 在 Designer 畫面中,針對要變更的頁面元素,選取儲存器欄位。
  3. WebSphere Portlet Factory Designer 選用區中,按一下佈置工具並導覽至要使用的資料佈置範本。

    如此即會列出產品提供的範本及使用者建立的範本。

  4. 用滑鼠右鍵按一下資料佈置範本項目,然後按一下插入

    您還可以從選用區將想要的佈置類型拖放至「設計」畫面的儲存器上。

    「資料佈置」建置器呼叫編輯器即會在新視窗中開啟。 佈置範本輸入包含您所選取的資料佈置範本。

  5. 在建置器呼叫編輯器的儲存器欄位輸入中,指定要變更的群組或欄位。

    如果您將範本放置在儲存器上,則此輸入會包含該儲存器的 ID。

  6. 資料佈置輸入中,將目標元素位置從名稱下列出的資料佈置範本對映至資料欄位或資料欄位標籤。
    1. 中,按一下資料格並從清單中選取欄位或標籤。
    2. 樣式中,按一下資料格並從清單中選取資料佈置範本的項目。
  7. 按一下確定以儲存您的變更,關閉建置器呼叫編輯器,並在「設計」畫面中查看您的變更。

    「資料佈置」建置器即會新增至您的模型。

  8. 若要在佈置中進行變更,請開啟「資料佈置」建置器,並修改適當的輸入。

直接編輯資料頁面元素的佈置

模型編輯器中的蹦現指令可讓您針對「資料頁面」建置器所建立的元素,直接編輯其佈置。

在模型編輯器中,可針對由「資料頁」建置器或使用「資料頁」建置器之建置器 (例如,「視圖及表單」) 所建立的元素,使用匯出功能。 可變更的元素為頁面、表格、群組及欄位。

註: 此特性可讓您完全接管 HTML 的產生作業,該 HTML 與部分頁面自動化元素相關聯。 如果您使用此特性,則可完全控制 HTML 頁面佈置,並可有效率地停用頁面的自動產生作業。 如果變更頁面所根據的服務或綱目,則因為您已接管顯示畫面,所以該頁面可能不再進行這些變更。 因此,只有在您有一些不尋常的佈置,而且真的需要精確地控制顯示畫面時,才使用此功能。 一般而言,如果您沒有不尋常或嚴格的需求,則應使用資料佈置範本、使用佈置網格或使用 HTML 範本,進行 HTML 的頁面自動產生作業。
  1. 在模型編輯器中,執行下列其中一個動作。
    • 在「應用程式樹狀結構」中,導覽至 Pages 資料夾下的項目,以尋找包含要自訂之元素的頁面。
    • 在「頁面」畫面中,顯現頁面的圖示。
    • 在頁面的「設計」畫面中,尋找要自訂的元素。
  2. 用滑鼠右鍵按一下元素或頁面的項目,然後按一下匯出 HTML 以進行資料佈置
  3. 另存新檔對話框視窗中,於輸入或選取上層資料夾下,指定要儲存已匯出 HTML 檔的位置,而於檔名中,選擇性地修改已匯出 HTML 檔的預設名稱。 然後按確定
  4. 在蹦現對話框視窗中,按一下確定,開啟已匯出的檔案以進行編輯。

    按一下取消,於稍後編輯檔案。

    在編輯區中,會開啟已匯出的檔案以進行編輯。 「大綱」視圖會顯示 HTML 檔的標籤階層。

  5. 編輯要自訂之元素的 HTML 程式碼。

    請勿刪除具名的元素,但您可以變更 HTML 標籤。

  6. 儲存並關閉檔案。

「HTML 資料佈置」建置器會新增至模型,以提供您在已匯出 HTML 檔中所指定的自訂內容。 此建置器會使用已匯出的檔案,以顯示為資料頁的這個部分。

若要移除自訂內容,您可以停用或刪除建置器。 若要建立其他自訂內容,則可編輯已匯出的 HTML 檔。

驗證資料欄位

您可以管理資料輸入頁面上使用者輸入的驗證,該資料輸入頁面是由「資料頁」建置器 (或使用「資料頁」建置器建立之建置器) 所建立的。

這些技術也適用於使用「資料頁面」建置器之任何建置器所建立的頁面。

資料輸入頁面是由「資料頁」建置器管理,其上的任何欄位都會設為資料輸入,即使整個頁面設為僅供顯示時也是如此 (即使整個頁面未這樣設定,如果使用「資料欄位修飾元」建置器將其中一個欄位修改為資料輸入,也會發生此狀況)。

「資料頁」建置器會管理將資料輸入頁面呈現給一般使用者,以及收集並驗證使用者回應。 它會根據您的設定產生頁面的 JSP。 它會產生 SaveData 方法,其會收集 J2EE 伺服器置於 RequestInputs 中的值,並將這些值儲存在變數中。 最後,它會針對個別欄位建立驗證作業,並將驗證錯誤訊息新增至 JSP 頁面。

在驗證欄位並將結果顯示給一般使用者的程序中,您可以控制下列方面:

  • 表示必要欄位之字串的內容及位置
  • 錯誤字串的內容及位置
  • 完整錯誤的位置,其連結所有個別欄位錯誤訊息,以及其他的整體錯誤訊息
  • 驗證成功時及驗證失敗時執行的程式碼
  • 是否根據綱目或資料庫參照自動選取欄位驗證器
  • 將個別欄位設為必要或非必要,置換綱目的行為
  • 選取與針對欄位個別自動選取之驗證器不同的欄位驗證器
  • 以 Java 撰寫自己的欄位驗證器並選取它們
  • 新增 Post-Save 方法,如果某些值不正確,其會提供錯誤訊息字串,讓驗證失敗。 此字串會在完整錯誤位置中對使用者顯示。
  • 在其他欄位驗證已經失敗時,是否呼叫 Post-Save 方法。
  • 使用錯誤訊息管理程式清除頁面的錯誤訊息,並執行其他作業,包括在 Post-Save 方法中新增個別欄位的錯誤訊息。

控制錯誤文字的位置及新增完整錯誤位置

首先,請編輯頁面,在將出現「完整錯誤」文字的位置新增 SPAN。 開啟「匯入的頁面」建置器,並按一下編輯頁面。 找到名為 data 的 SPAN,並複製整行 HTML,使其出現兩次。 將其中一個 SPAN 內的 data 單字變更為 fullError,再按一下建置器呼叫上的確定

開啟 inputPage 的「資料頁」建置器,並向下捲動至必要欄位及輸入驗證設定。 將錯誤位置變更為「分隔欄位左側直欄」,並針對「完整錯誤位置」選取 fullError。 現在,再次執行模型,並在兩個欄位中輸入一些非數值文字,然後按一下提交。 請注意,錯誤訊息的位置已移動,並且已在「完整錯誤」位置複製錯誤訊息。 在繼續之前,將錯誤位置變更回欄位的右側,如此可使其更有意義。

控制成功及失敗動作

通常,當使用者完成填寫「資料輸入」頁面並提交時,將會執行某些動作。 如果出現驗證錯誤,有時您還想要執行不同的動作。 在「資料頁」建置器中,存在「成功動作」與「失敗動作」這兩種輸入。 在建立 inputPage_NextAction 方法時可以使用這些項目,您可以在 WebApp 視圖中看到這些項目。 如果查看此方法,您會看到此方法所執行的全部作業都是在進行測試,以查看頁面是否有任何驗證錯誤,然後呼叫適當的動作。

如果將「失敗動作」留為空白 (如範例所示),則預設的失敗動作是返回相同的頁面。

控制個別欄位驗證器的自動產生

依預設,會根據綱目、WSDL 文件或其他機制定義的欄位類型,產生個別欄位驗證器。 您可以使用「根據綱目驗證」設定,在「資料頁」建置器中停用此行為,且不會自動建立驗證器。 然而,即使將其停用,您仍然可以使用「資料欄位修飾元」手動設定個別驗證器。

手動選取個別欄位驗證器

建立新的「資料欄位修飾元」,且只選取 inputPage 上的其中一個欄位。 開啟格式群組,並選取格式製作程式 com.bowstreet.builders.webapp.pageautomation.StandardFormatter。 這會導致出現一些其他輸入,包括「驗證表示式」。 選取您自己的驗證器 (但是請記住,呼叫的服務呼叫預期在此欄位中使用數字)。 請注意,如果選擇 RegularExpression(RegExString),則會為您提供新的輸入,應在其中輸入正規表示式字串。 此設定將置換該欄位的「必要/選用」值,因為在此處可以使用該選項。 請變更驗證器,並再次執行模型以查看新的驗證字串。

新增 Post-Save 方法

您可以控制 Post-Save 方法的行為,並使用它來執行跨欄位驗證。 有時,在將資料從 RequestInputs 儲存至變數之後,您還想要程式碼執行其他工作。 Post-Save 方法輸入是您用來在此程序中新增 Java 程式碼的連結鉤。 此外,如果要執行的作業是資料輸入的其他驗證,或可能比個別欄位驗證更為複雜,Post-Save 方法可能會導致驗證失敗 (強制執行失敗動作),並包含將顯示給使用者的錯誤訊息。

建立新的「方法」建置器,並將其命名為 TestLatitudes。 將傳回類型設為 String,並在方法主體中填入下列內容:

    {
        double lat1 = webAppAccess.getVariables().getDouble("MyServiceCall_arg1_lat1");
        double lat2 = webAppAccess.getVariables().getDouble("MyServiceCall_arg3_lat2");
        if (lat1 == lat2)
        return "Make the latitudes different.";
        else
        return null;
    }

該程式碼會從變數中取得兩個緯度輸入的值 (「資料頁」建置器已在該變數中儲存這些輸入),檢查並查看它們是否相同 (透過查看 WebApp 視圖並選取 (而不是開啟) 建立變數的「服務呼叫」建置器,可以瞭解這些變數的確切名稱)。

如果這兩個值相同,則程式碼會傳回一些文字,inputPage_SaveData 方法會將其解譯為錯誤訊息。 如果這兩個值不同,則程式碼會傳回空值,SaveData 方法會知道這表示 Post-Save 方法未發現任何錯誤。 執行模型,並嘗試將這兩個值設為相同,將會顯示錯誤訊息。 因為此錯誤與特定欄位無關,所以該訊息只會顯示在「完整錯誤」區段中。

如果您只想讓 Post-Save 方法執行某些工作而從不傳回錯誤,可以將其傳回類型設為 void。 此外,您可能只想在成功執行個別欄位驗證時呼叫 Post-Save 方法,或者想要始終呼叫此方法。 在「資料頁」建置器中,您可以使用 Post-Save 方法行為輸入來控制此行為。

與錯誤訊息管理程式互動

針對每個「資料輸入」頁面,「資料頁」建置器都會建立鏈結的 Java 物件,來作為錯誤訊息管理程式。 如果選取 WebApp 視圖中的 LJO inputPageError,您會看到可用的方法。 您可以使用這些方法來設定 Post-Save 方法中的個別欄位錯誤訊息。 由於對於個別驗證器來說,案例過於複雜,或因為他們規劃使用 Post-Save 方法,因此部分開發人員會在 Post-Save 方法中設定這個。

您也可以直接取得個別訊息,來自己管理錯誤訊息的顯示,而不是讓「資料頁」建置器來管理顯示。 如果您返回含有全新資料的頁面,以及想要清除一般使用者前次造訪頁面時遺留的訊息,也可以清除訊息。

修改欄位驗證設定

您可以修改用於驗證資料輸入欄位的部分設定。

IBM WebSphere Portlet Factory 的模型編輯器中,使用「頁面」及「設計」畫面,檢視要變更的表單或頁面。 若要變更欄位驗證設定(例如,錯誤字串),請使用「資料欄位設定」建置器。

  1. 在「頁面」畫面中,找到並選取包含要變更的資料輸入欄位的表單或頁面。
  2. 在「設計」畫面中,找到並選取包含資料輸入欄位的群組。
  3. 在選項上按一下滑鼠右鍵,並按一下資料欄位設定 > 驗證

    只有選取儲存器,才可以查看指令。 僅在相關欄位是資料輸入欄位時,才可以使用驗證指令。

  4. 在「資料欄位設定」對話框的頁面範圍中,按一下下列其中一個選項,以確定變更的範圍。
    • 所有頁面,可以變更模型中所有頁面的欄位。
    • 現行頁面,僅可以變更選定頁面中的欄位。
  5. 變更欄位的任何設定。
    必要
    確定一般使用者是否必須在欄位中輸入值,以容許提交表單或資料頁面。
    驗證作業
    確定要用於驗證一般使用者在欄位中所輸入值的作業。
    引數
    為驗證作業指定引數。 如果作業不接受引數,則會忽略該值。
    錯誤訊息
    指定文字以置換驗證作業失敗時使用的預設訊息。 即使您正在使用列中其他設定的預設值,也可以設定此輸入。
  6. 按一下確定

    如果「資料欄位設定」建置器目前不在此表單或頁面的模型中,則建置器呼叫會新增至具有新設定的模型。 如果模型目前含有表單或頁面的「資料欄位設定」建置器,則會將新設定新增至現行建置器。

  7. 透過開啟「資料欄位設定」建置器的建置器呼叫編輯器並修改關聯的建置器輸入,變更頁面的任何設定。

修改欄位顯示設定

您可以在模型編輯器中使用右鍵功能表,以修改用於顯示直欄或欄位的某些設定。

IBM WebSphere Portlet Factory 的模型編輯器中,使用「頁面」及「設計」畫面,檢視要變更的表單或頁面。 若要變更欄位顯示設定(例如,標籤),請使用「資料欄位設定」建置器。

  1. 在「頁面」畫面中,找到並選取包含要變更的直欄或欄位的表單或頁面。
  2. 在「設計」畫面中,找到並選取包含直欄或欄位的群組。
  3. 在選項上按一下滑鼠右鍵,並按一下資料欄位設定 > 欄位

    只有選取儲存器,才可以查看指令。

  4. 在「資料欄位設定」對話框的頁面範圍中,按一下下列其中一個選項,以確定變更的範圍。
    • 所有頁面,可以變更模型中所有頁面的欄位。
    • 現行頁面,僅可以變更選定頁面中的欄位。
  5. 變更欄位的任何設定。
    標籤
    請執行下列其中一項:
    • 輸入要用於此欄位的標籤。
    • 設為 [請勿變更],以讓此欄位保留其已有的值。
    • 設為 [空白],以讓此欄位沒有標籤。
    隱藏
    控制是始終隱藏欄位(一律隱藏)、始終顯示欄位(一律顯示),還是僅在表格中隱藏欄位(僅在表格中隱藏)。
    排序
    控制是為直欄或欄位啟用排序(開啟),還是為其停用排序(關閉)。

    要使用的排序類型由使用中的 RDD 檔案決定。

    欄位類型
    選取清單中的新值。 此設定的值來自用於專案的預設 RDD 檔案中指定的檔案。
    參考表/選項
    選取清單中的新值。 預設值來自模型和預設 RDD 檔案中的參考表。 您還可以輸入多個值,以分號區隔 (;)。 如果欄位為資料輸入,則這些值還可以套用至選取按鈕或圓鈕;如果欄位設為「僅顯示」,則使用參考表來轉換欄位。
  6. 按一下確定

    如果「資料欄位設定」建置器目前不在此表單或頁面的模型中,則建置器呼叫會新增至具有新設定的模型。 如果模型目前含有表單或頁面的「資料欄位設定」建置器,則會將新設定新增至現行建置器。

  7. 選擇性的: 透過開啟「資料欄位設定」建置器的建置器呼叫編輯器並修改關聯的建置器輸入,變更頁面的任何設定。

關於豐富型資料定義檔案

可從稱為豐富型資料定義 (RDD) 檔案的 XML 檔案中讀取資料定義。

豐富型資料定義用於清除 Portlet 或小組件,例如,透過隱藏不需要顯示的直欄來清除。 豐富型資料定義與模型中的綱目相關聯。 針對已選取綱目的每個欄位,您可以指定標籤、控制項類型、參考表、格式化、驗證及其他項目。

資料定義檔案透過將使用者介面 (UI) 說明與綱目相關聯來運作。 當綱目用於產生頁面元素(例如,使用「資料頁」建置器或「視圖及表單」建置器)時,所有使用者介面性質都會自動套用至頁面。 透過使用「資料欄位修飾元」建置器的功能,您可以瞭解特定設定,例如驗證及格式化。

為您的專案提供基本豐富型資料定義檔。 依預設,每個專案均已指派儲存在下列位置的 RDD 檔案。
/WEB-INF/factory/data_definitions/
提供 RDD 檔案 base_datadef.xmldojo_base_datadef.xml。 您可以透過定義 override.properties 檔案中的下列內容,來置換專案的預設值。
bowstreet.baseRddFile
此內容的預設值位於 bowstreet.properties 檔案中。 可以定義多個檔案;使用找到的第一個檔案。

您可以使用「資料欄位設定」建置器中的預設 RDD 檔案輸入,來置換您模型中專案的基本 RDD 檔案。

您可以使用建置器來修改資料定義資訊,該資訊與頁面自動化表單和頁面上直欄和欄位的 WebApp 中的綱目相關聯。 資料定義是「資料頁」建置器的其中一種內部資料結構。 當「資料頁」與綱目類型變數一起使用時,資料頁會尋找附加至 WebApp 中綱目的任何資料定義資訊。 那些資料定義內容就會變成以綱目為基礎的任何頁面的預設值。 不過,您仍然可以使用其他建置器(例如「資料欄位設定」、「資料直欄修飾元」和「資料欄位修飾元」),來置換在與綱目相關聯的資料定義中指定的內容。

資料定義是使用元素名稱建立與綱目元素之間的關聯性。 資料定義檔中通常會儲存一組結構,每個欄位在結構中都會有一個子項資料定義。 綱目中的母項 (結構) 名稱必須符合資料定義檔中的母項名稱,而且個別欄位的名稱也必須相符。

資料定義執行的作業
豐富型資料定義 (RDD) 檔案會提供最大程度的自動化方式,來控制應用程式資料欄位的詳細使用者介面。 透過 RDD 檔案,可以使用下列方式自動控制使用者介面 (UI)。
  • 格式或驗證欄位。 例如,您可以格式化或驗證日期、從字串移除字元或套用標籤。
  • 指定適用欄位的使用者友善標籤。
  • 指定參考表,以提供對使用者友善的選項清單。
  • 變更欄位的 UI 行為。 例如,套用資料輸入控制項、限制為僅限檢視,或製作欄位的鏈結。
  • 自動控制欄位類型的所有欄位行為。 例如,對所有日期欄位使用「日曆挑選器」建置器。
  • 控制直欄中已格式化的資料。 例如,使直欄名稱易於閱讀、隱藏無需顯示的直欄、新增排序功能、調整直欄寬度及對齊直欄。
資料定義內容

各種自動對映及資料定義內容用於豐富型資料定義檔案。

IBM WebSphere Portlet Factory Designer 中提供的豐富型資料定義檔案 dojo_base_datadef.xmlbase_datadef.xml,會宣告基本資料定義及資料定義的 meta 資料。 <SchemaTypeMappings> 宣告會根據綱目類型建立自動對映,適用於模型中的每個「資料頁面」建置器。
<SchemaTypeMappings>
  <SchemaTypeMap type="date">base_Date</SchemaTypeMap>
  <SchemaTypeMap type="boolean">base_CheckBox</SchemaTypeMap>
  <SchemaTypeMap type="string">base_String</SchemaTypeMap>
  <SchemaTypeMap type="string_enumeration">base_Select</SchemaTypeMap>
  <SchemaTypeMap type="char">base_ShortString</SchemaTypeMap>
  <SchemaTypeMap type="integer">base_Integer</SchemaTypeMap>
  <SchemaTypeMap type="int">base_Integer</SchemaTypeMap>
  <SchemaTypeMap type="byte">base_Integer</SchemaTypeMap>
  <SchemaTypeMap type="short">base_Integer</SchemaTypeMap>
  <SchemaTypeMap type="long">base_Integer</SchemaTypeMap>
  <SchemaTypeMap type="double">base_FloatingPoint</SchemaTypeMap>
  <SchemaTypeMap type="float">base_FloatingPoint</SchemaTypeMap>
  <SchemaTypeMap type="decimal">base_Integer_Internal</SchemaTypeMap>
</SchemaTypeMappings>
您可以在這裡併入您自己的定義。

類型是要符合的綱目類型。此值針對「資料欄位設定」建置器中欄位的欄位類型顯示。 SchemaTypeMap 宣告中的文字是在找到相符項時使用的資料定義。 string_enumeration 類型是特殊類型。如果節點的葉的實際綱目類型是字串,且其已定義列舉或選取選項,則它會使用此類型。

基本資料定義內容

欄位設定(以及資料輸入欄位的驗證設定)的某些一般內容會顯現在「資料欄位設定」建置器及 WebSphere Portlet Factory Designer 的「內容」視圖中。 不過,這些內容並不會顯現在建置器呼叫編輯器中。 若要使用這些內容,您必須將其直接新增至專案基本資料定義檔案 dojo_base_datadef.xmlbase_datadef.xml 中。

下列內容可新增至豐富型資料定義檔案。
<Attributes>
此內容所採用的 XML 值,與「資料欄位修飾元」建置器採用的 XML 值相同。 典型的 Attribute 內容如下所示:
<Attributes>
 <Attribute>
  <Name>color</Name>
  <Value>black</Value>
 </Attribute>
 <Attribute>
  <Name>size</Name>
  <Value>${Variables/CurSize}</Value>
 </Attribute>
</Attributes>
<ColumnAlignment>
此內容採用下列其中一個值。
  • 靠左
  • 靠右
  • 置中
<ColumnSorting>
此內容採用下列其中一個值。
  • 不區分大小寫字串
  • 區分大小寫字串
  • 數字
  • 日期
  • 不可排序

使用上述部分內容來設定直欄寬度、對齊方式、排序狀態及樣式的典型資料定義元素可能會如下所示:

<DataDefinitionElement name="DATE_SHIPPED" base="base_SAPDate">
 <Label>Date Shipped</Label>
 <Required>false</Required>
 <ColumnWidth>400</ColumnWidth>
 <ColumnAlignment>right</ColumnAlignment>
 <ColumnSorting>Case Sensitive String</ColumnSorting>
 <Attributes>
  <Attribute>
   <Name>style</Name>
   <Value>color:red</Value>
  </Attribute>
 </Attributes>
</DataDefinitionElement>
<ColumnWidth>

此內容會採用一個數字,來代表直欄寬度(字元)。

<ControlElementModifiers>
這個內容可讓您關聯修改建置器 (例如,「屬性 Setter」或「可見度 Setter」) 與元素。 與 DataEntryControlDisplayControl 內容類似,可用來呼叫任何使用頁面位置輸入的建置器。 您可以在單一元素中併入多個建置器。 而且您可以控制使用建置器來顯示含有 usemodifierdisplay 屬性的欄位,還是顯示含有 use_modifier_dataentry 屬性的資料輸入欄位。 下列範例示範在顯示模式及資料輸入模式中,呼叫「屬性 Setter」建置器。
<ControlElementModifiers>
 <BuilderCall use_modifier_dataentry="true" use_modifier_display="true">
  <BuilderDefID>com.bowstreet.builders.webapp.AttributeSetterBuilderBuilderDefID>com.bowstreet.builders.webapp.AttributeSetterBuilder></BuilderDefID>
  <Inputs>
   <Input name = "BuilderCallEnabled">true</Input>
   <Input name = "HandleExisting">Skip</Input>
   <Input name = "HandleMissingValue">Ignore</Input>
   <Input name = "Separator">;</Input>
   <Input name = "Attributes">
    <top>
     <Attribute>
      <Name>style</Name>
      <Value>color:red</Value>
     </Attribute>
    </top>
   </Input>
  </Inputs>
 </BuilderCall>
</ControlElementModifiers>
<DataEntryControl>
當欄位出現在資料輸入頁面上時 (如需僅限檢視頁面,請參閱「顯示控制項」),此內容會建立建置器 ID 與欄位的關聯性。 您可以指定建置器 ID 及所需的任何建置器輸入。 若要建立建置器輸入的 XML,可以在模型中使用想要的建置器,然後移至「模型 XML」視圖,並複製/貼上 XML 的「輸入」區段。
註: 建置器必須支援間接參照輸入 Value,才能使用。
例如:
 <DataEntryControl>com.bowstreet.builders.webapp.TextAreaBuilder</DataEntryControl>
 <DataEntryInputs>
  <Inputs>
   <Input name = "Wrap">off</Input>
   <Input name = "Cols">80</Input>
   <Input name = "Rows">5</Input>
  </Inputs>
 </DataEntryInputs>
<DisplayControl>

此內容類似於「資料輸入控制項」,但只適用於僅限檢視頁面。 建置器輸入的相對應元素名稱稱為 <DisplayInputs>

<DisplayMode>
容許的值包括:
  • 0 - DISPLAY_NONE
  • 1 - DISPLAY_AUTO

儲存器欄位的其他值包括:

  • 2 - DISPLAY_VERTICAL
  • 3 - DISPLAY_HORIZONTAL
<EnumerationValues>

您可以使用此內容來設定具有一組可能值的欄位選項。 這個內容並不會像參考表一樣提供個別文字/值。

請參閱下面關於列舉值的本地化附註。

這個內容的典型用法可能會如下所示:

<EnumerationValues>
 <Value>Shipped</Value>
 <Value>Out of Stock</Value>
 <Value>Returned</Value>
 <Value>In Process</Value>
</EnumerationValues>
<ErrorMessage>

您可以將此內容新增至豐富型資料定義檔案。 此內容採用字串,用於置換驗證時失敗之欄位的錯誤訊息。

<FormatterClass>

您可以使用這個內容,在豐富型資料定義檔中指定自訂格式製作程式類別。 格式製作程式類別會使用與「資料欄位修飾元」建置器相同的機制及介面。

格式製作程式類別的名稱是使用 FormatterClass 元素指定,如下所示。

<DataDefinition name="AMOUNT" base="base_Currency"> 
 <Label>Amount</Label> 
 <ColumnSorting>Case Sensitive String</ColumnSorting> 
 <ColumnWidth>100</ColumnWidth> 
 <ColumnAlignment>right</ColumnAlignment> 
 <FormatterClass>com.bowstreet.builders.webapp.pageautomation.StandardFormatter</FormatterClass> 
 <FormatExpr resource_key="BaseDate_FormatExpr">Format(yyyy-MM-dd$MM/dd/yyyy)</FormatExpr>
 <TranslateExpr resource_key="BaseDate_TranslateExpr">Translate(yyyy-MM-dd$MM/dd/yyyy)</TranslateExpr>
 <ValidateExpr>Date(yyyy-MM-dd)</ValidateExpr>
 </DataDefinition>

針對 StandardFormatter,替換您的類別規格。 如果您省略 FormatterClass 元素,則會使用 StandardFormatter 類別。

替換適用於您資料定義的 FormatExpr、TranslateExpr 及 ValidateExpr 元素。

<InitialValue>

此內容可用來定義欄位的預設起始值。 它相當於設定「資料欄位修飾元」建置器的起始值輸入。

<LookupTable>

您可以使用這個內容來建立參考表,並建立其與欄位的關聯性。 若要建立新的參考表,您必須指定建置器的 ID,且該建置器必須是在 WebApp 中建立參考表 (「參考表」、「Domino 關鍵字查閱」或「SAP 說明值」) 的建置器。 請在 Inputs 元素中指定所有必要的建置器輸入,如下所示:

此範例程式碼會使用「參考表」建置器,從 XML 資料建立一項查閱。 此功能還用來自動建立並套用「SAP 說明值」查閱。

<DataDefinitionElement name="BILLING">
 <Label>Billing</Label>
  <LookupTable>
   <BuilderID>com.bowstreet.builders.webapp.LookupTableBuilder</BuilderID>
    <Name>billing</Name>
     <Inputs>
      <Input name = "DataType">NewXmlData</Input>
      <Input name = "GetDataFrom">BuilderInput</Input>
      <Input name = "TablePosition">InFront</Input>
      <Input name = "Name">billing</Input>
      <Input name = "NewXmlData">
       <lookup>
        <entry>
         <name>Purchase Order</name>
         <value>1</value>
        </entry>
        <entry>
         <name>Credit Card</name>
         <value>0</value>
        </entry>
       </lookup>
      </Input>
      <Input name = "ValueElementName">value</Input>
      <Input name = "LabelElementName">name</Input>
     </Inputs>
  </LookupTable>
</DataDefinitionElement>
<PotentialColumnSorting>
此內容用於建立「資料欄位設定」建置器用於排序直欄的預設值。 例如,base_String 的資料定義具有下列用於直欄排序的宣告。
<PotentialColumnSorting>Case Insensitive String</PotentialColumnSorting>
<Properties>
使用此內容,可以在 DataDefinitionElement 上設定任何具名內容。 此標籤主要是針對自己製作建置器的人員而設計,供他們將內容新增至資料定義,以及從建置器程式碼存取那些內容。 Properties 元素會類似如下所示:
<DataDefinition name="AMOUNT">
 <Label>Amount</Label>
  <Properties>
   <Property name="ColumnWidth">100</Property>
   <Property name="ColumnAlignment">right</Property>
  </Properties>
</DataDefinition>
在此範例中,name= 屬性會指定內容名稱,且元素文字會包含內容值。
註: 此範例中示範的技術,與直接使用 ColumnWidthColumnAlignment 內容標籤具有相同的效果。
<ReadOnly>
此內容會強制將欄位視為唯讀,即使在使用標記為資料輸入的「資料頁」顯示欄位時亦是如此。
註: 效果相當於使用「資料欄位修飾元」建置器將欄位行為設為僅限檢視
<Remove>

在此內容中,指定值為 true 時,會移除欄位。 欄位是不可見的,也不會顯示在其他建置器 (例如「資料直欄修飾元」或「資料欄位修飾元」建置器) 中。

建立參考表

如果您要定義的查閱值,是來自本身不會建立查閱的建置器,則可以指定呼叫其他的建置器。

下面的範例會使用「服務消費者」建置器。 在此情況下,假設您要從「服務消費者」建立「參考表」。 如果您將 ServiceInfo 子元素新增至 LookupTable 元素,並指定其他建置器來支援取得查閱資料,則可以執行此動作。 然後,在資料定義中指定的「參考表」建置器就可以參照其他建置器所傳回的資料。

最後結果是資料定義檔會使任何數目的欄位中 (在參照資料定義的每個模型中) 自動移入下拉參考表,其中的值是透過呼叫服務來動態擷取。 例如,下列 XML 可用來呼叫「服務消費者」建置器,以動態取得查閱值,然後參照「參考表」建置器中的結果值:

<LookupTable>
<Name>companyLookup</Name>
<BuilderID>com.bowstreet.builders.webapp.LookupTableBuilder</BuilderID>
<Inputs>
<Input name = "DataType">XmlData</Input>
<Input name = "VariableType">ValueTagLabelTag</Input>
<Input name = "GetDataFrom">BuilderInput</Input>
<Input name = "TablePosition">InFront</Input>
<Input name = "Name">companyLookup</Input>
<Input name = "XmlData">${MethodCall/companiesGetCompanyList}</Input>
<Input name = "ValueElementName">Value</Input>
<Input name = "LabelElementName">Name</Input>
</Inputs>
<ServiceInfo>
<BuilderID>com.bowstreet.builders.webapp.ServiceConsumer2Builder</BuilderID>
<Inputs>
<Input name = "UseAllOperations">true</Input>
<Input name = "OverrideInputs">false</Input>
<Input name = "Name">companies</Input>
<Input name = "ProviderModel">services/CompanyListService</Input>
<Input name = "OperationName">getCompanyList</Input>
</Inputs>
</ServiceInfo>
</LookupTable>
資料定義欄位的群組

在豐富型資料定義檔案中,您可以建立欄位的分組。

若要執行此動作,您必須在根 DataDefinitions 元素下,直接建立群組定義。 下列程式碼會顯示一般群組定義。
<DataDefinitions>
 <GroupDefinitions>
  <GroupDefinition name="Personal">
   <Label>Personal Information</Label>
  </GroupDefinition>
  <GroupDefinition name="Address">
   <Label>Address</Label>
  </GroupDefinition>
 </GroupDefinitions>
 <DataDefinition name="Members">
  <Required>true</Required>
  <Children>
   <DataDefinition name="first">
    <GroupName>Personal</GroupName>
    <Label>First Name</Label>
    <Required>true</Required>
    <DataType>string</DataType>
   </DataDefinition>
   <DataDefinition name="last">
    <GroupName>Personal</GroupName>
    <Label>Last Name</Label>
    <Required>true</Required>
    <DataType>string</DataType>
   </DataDefinition>
   <DataDefinition name="states" base="base_US_States">
    <GroupName>Address</GroupName>
    <Label>States</Label>
    <Required>false</Required>
    </DataDefinition>
   <DataDefinition name="birthdate" base="base_date">
    <GroupName>Personal</GroupName>
    <Label>Date Of Birth (MM/DD/YY)</Label>
    <Required>false</Required>
   </DataDefinition>
   <DataDefinition name="birthtime" base="base_time">
    <GroupName>Personal</GroupName>
    <Label>Time Of Birth (HH:MM AM/PM)</Label>
    <Required>false</Required>
   </DataDefinition>
   <DataDefinition name="salary">
    <GroupName>Business</GroupName>
    <Label>Salary</Label>
    <Required>false</Required>
   </DataDefinition>
  </Children>
 </DataDefinition>
</DataDefinitions>

<GroupDefinitions> 元素會在相對應的 <GroupDefinition> 元素下,設定個別的欄位群組。

繼承基本定義檔中的資料定義

在豐富型資料定義檔案中,基本屬性可以用於繼承其他資料定義中的內容。

所繼承的資料定義可以位於相同的 XML 檔案中,或位於其他豐富型資料定義檔案中。 資料定義內容是在個別的內容層次繼承,並且可以在衍生的資料定義中置換任何內容。

例如,下面是一般資料欄位的兩個定義(QUANTITY 及 DATE_ORDERED)。

<DataDefinitionElement name="QUANTITY">
 <Label>Quantity</Label>
 <Required>false</Required>
 <ValidateExpr>Optional integer</ValidateExpr>
</DataDefinitionElement>
<DataDefinitionElement name="DATE_ORDERED" base="base_SAPDate">
 <Label>Date Ordered</Label>
 </DataDefinitionElement>

DATE_ORDERED 的定義衍生自基本屬性中的值。 DATE_ORDERED 使用的 base_SAPDate 定義可能類似於下列程式碼。

<DataDefinitionElement name="base_SAPDate">
 <DataEntryControl>com.bowstreet.solutions.wfm.builders.CalendarPickerBuilder</DataEntryControl>
 <DataEntryInputs>
  <Inputs>
   <Input name = "Format">MM/dd/yyyy</Input>
  </Inputs>
 </DataEntryInputs>
 <FormatExpr>Format(yyyy-MM-dd$MM/dd/yyyy)</FormatExpr>
 <TranslateExpr>Translate(yyyy-MM-dd$MM/dd/yyyy)</TranslateExpr>
 <ValidateExpr>Optional Date(yyyy-MM-dd)</ValidateExpr>
</DataDefinitionElement>

隱藏及顯示直欄或欄位

您可以隱藏表單或頁面上目前顯示的直欄或欄位。

如果直欄或欄位目前未顯示,則您還可以安排其在表單或頁面上顯示。 IBM WebSphere Portlet Factory 的模型編輯器中,使用「頁面」及「設計」畫面,檢視要變更的表單或頁面。

  1. 在「頁面」畫面中,找到並選取包含要變更的直欄或欄位的表單或頁面。
  2. 在「設計」畫面中,找到並選取包含要變更的直欄或欄位的群組。

    若要選取類型相同的多個物件,請按下 Ctrl,並按一下包含這些物件的每個群組。

  3. 在選項上按一下滑鼠右鍵,並按一下資料欄位設定 > 隱藏,以禁止顯示直欄或欄位,或者按一下資料欄位設定 > 顯示,以顯示直欄或欄位。

    只有選取儲存器時,才可以查看指令。 可用的指令取決於所選取物件的現行設定。

如果模型不包含此表單或頁面的相關建置器,則會將建議的建置器新增至模型。 如果相關的建置器位於此表單或頁面的模型中,則會以您的變更來更新該建置器中的相關輸入。

修改直欄排序

您可以修改是否可以排序直欄。

IBM WebSphere Portlet Factory 的模型編輯器中,使用「頁面」及「設計」畫面,檢視要變更的表單或頁面。

  1. 在「頁面」畫面中,找到並選取包含要變更的直欄的表單或頁面。
  2. 在「設計」畫面中,找到並選取包含直欄的群組。

    若要選取類型相同的多個物件,請按下 Ctrl,並按一下包含這些物件的每個群組。

  3. 在選項上按一下滑鼠右鍵,並按一下資料欄位設定 > 排序,以使直欄可排序,或者按一下資料欄位設定 > 移除排序,以禁止排序直欄。

    只有選取儲存器時,才可以查看指令。 可用的指令取決於所選取物件的現行設定。

如果模型不包含此表單或頁面的相關建置器,則會將建議的建置器新增至模型。 如果相關的建置器位於此表單或頁面的模型中,則會以您的變更來更新該建置器中的相關輸入。

合併直欄或欄位

您可以合併欄位以呈現為單一欄位,並合併直欄以呈現為單一直欄。

您通常需要資料位於多個欄位中。 不過,顯示資料時,您可能要將這些欄位合併為一個直欄進行顯示。 例如,人員的地址可能包括個別城市、州和郵遞區號欄位。 您可以使用「資料欄位合併」建置器,來將各個欄位作為詳細資料頁面上的單一欄位或單一顯示的直欄。

IBM WebSphere Portlet Factory 的模型編輯器中,使用「頁面」及「設計」畫面,檢視要變更的表單或頁面。

  1. 在「頁面」畫面中,找到並選取包含要變更的直欄或表單的表單或頁面。
  2. 選取要包含合併結果的直欄或欄位。
  3. 依要合併至所選直欄或欄位的順序,按 Ctrl 的同時按一下直欄或欄位。

    多個欄位必須全部位於相同的儲存器欄位中。

  4. 在選項上按一下滑鼠右鍵,並按一下合併欄位 > 合併

    此環境定義中,不支援按 Shift 的同時按一下。

  5. 執行下列其中一步驟,然後按一下確定
    • 直欄標題中,輸入要在合併直欄的頂端顯示的文字。
    • 欄位標籤中,輸入要用於參照新的合併欄位的文字。

「資料欄位合併」建置器會新增至具有設定的模型。 您可以開啟建置器呼叫編輯器,並指定要在所合併欄位之間顯示的分隔字元。 您還可以透過將欄位拖放至建置器呼叫編輯器中,來重新排列欄位的順序。

變更日期或其他欄位類型的格式

請遵循下列步驟,變更日期或其他欄位類型的格式。

  1. 將「豐富型資料定義」建置器置於包含需要修改綱目的模型中。
  2. 在建置器編輯器中,選取綱目。
  3. 使用建置器資料定義編輯器來選取欄位。
  4. 選取欄位之後,請修改任何需要修改的資料定義內容。

    例如,提供標籤、變更資料類型、選取格式、轉換或驗證表示式,以及需要或隱藏欄位。

  5. 選取另一個欄位並指定其他變更。
  6. 按一下套用確定,以套用資料定義變更。

建立可重複使用的資料定義檔

請遵循下列步驟,以建立可重複使用的資料定義檔。

  1. 將「豐富型資料定義」建置器置於包含需要修改綱目的模型中。
  2. 在建置器編輯器中,選取網目並使用資料定義編輯器將變更對映至各種欄位。
  3. 在完成所有需要的變更後,請按一下建立資料定義檔
  4. 出現提示時,提供名稱及要儲存此 XML 檔案的位置,然後按確定
建置器會建立包含指定之資料定義的 XML 檔案。

建立頁面

IBM WebSphere Portlet Factory 模型中的頁面可以從模型外取得,或者當您在模型中工作時建立。

請使用下列其中一種方法:
  • 使用「匯入的頁面」建置器從現有 HTML 或 JSP 頁面匯入。
  • 使用「頁面」建置器,在模型中建立頁面。

其他建置器呼叫可以在這些頁面上執行,以及修改或新增至其顯示的 HTML 控制項。

頁面自動化

「資料頁」建置器與使用「資料頁」的其他建置器一起,可以自動產生已顯示頁面的 HTML。 我們稱此特性為「頁面自動化」。 您可以使用「頁面自動化 HTML 範本」來控制此產生的 HTML 的外觀與操作方式。

如需相關資訊和實際應用程式,請參閱此 IBM WebSphere Portlet Factory Wiki 文章。

使用在具名標籤上技術

「在具名標籤上」技術是三種頁面位置方法中最簡單的一種,並且會使用實作建置器控制項的 JSP 程式碼,來取代頁面上的具名元素。

若要使用「在具名標籤上」技術在頁面上放置控制項建置器,請執行下列步驟:

  1. 頁面選取方塊中,選取要放置建置器呼叫的頁面。

    頁面選取方塊會顯示模型中所有 「匯入的頁面」以及「頁面」建置器呼叫名稱,以及所有鏈結的模型 (如果已啟用顯現至鏈結的模型輸入) 中的「匯入的頁面」及「頁面」建置器呼叫名稱。

  2. 尋找標籤選取方塊中,選取要在其上放置建置器呼叫的具名元素。
尋找標籤選取方塊會顯示選定頁面上所有具名的 <input /><span /> 標籤。

使用相對於具名標籤技術

在頁面上放置控制項建置器呼叫時,「相對於具名標籤」技術比「在具名標籤上」方法稍微複雜一些。

如果您在建置器頁面位置輸入中使用相對於具名標籤,則可以選擇取代具名標籤的內容、在指定的標籤內部插入新標籤,或在具名標籤鄰近插入新標籤。 若要使用相對於具名標籤技術,請執行下列步驟。

  1. 在建置器頁面位置輸入中,啟用相對於具名標籤
  2. 頁面選取方塊中,選取要放置建置器呼叫的頁面。

    頁面選取框會顯示 WebApp 中所有頁面的名稱。

  3. 尋找標籤選取方塊中,選取要在其上放置建置器呼叫的具名元素。

    尋找標籤選取方塊會顯示選定頁面上所有具名的 <input /><span /> 標籤。

  4. 請選取下列其中一種插入模式,以在頁面上放置建置器呼叫。
    取代節點
    建置器呼叫輸出會取代在標籤選取方塊中指定的元素。
    註: 在設定檔中,此選項會由設定檔值 Rename 代表。 因此,在設定檔對話框中,您在代表「取代節點」行為的值表格中,看到的值會是 Rename。
    之前
    建置器呼叫輸出會插入尋找標籤選取方塊中指定的元素之前,並且其名稱會設為您在新標籤名稱文字輸入中指定的值。
    之後
    建置器呼叫輸出會插入尋找標籤選取方塊中指定的元素之後,並且其名稱會設為您在新標籤名稱文字輸入中指定的值。
    頂端內部
    會插入建置器呼叫輸出,作為在尋找標籤選取框中所指定之具名元素的第一個子元素,且元素名稱設為您在新標籤名稱文字輸入中指定的值。
    底端內部
    會插入建置器呼叫輸出,作為在尋找標籤選取框中所指定之具名元素的最後一個子元素,且元素名稱設為您在新標籤名稱文字輸入中指定的值。
    TableWrapAbove
    建置器呼叫輸出會新增作為新表格列,且會重複在尋找標籤選取方塊中出現的具名元素之表格列。 例如,其中的 #old##new# 分別指定尋找標籤選取方塊中指定的元素及新元素:
    <table>
    <tr><td>#new#</td></tr>
    <tr><td>#old#</td></tr>
    </table>
    註: 如果具名元素位於 <tr> 節點內,則 TableWrapAbove 只會在其上產生新的 <tr> 節點。
    TableWrapBelow
    建置器呼叫輸出會新增作為新表格列,且會重複在尋找標籤選取方塊中出現的具名元素之表格列。 例如,其中的 #old##new# 分別指定尋找標籤選取方塊中指定的元素及新元素:
    <table>
    <tr><td>#old#</td></tr>
    <tr><td>#new#</td></tr>
    </table>
    註: 如果具名元素位於 <tr> 節點內,則 TableWrapBelow 只會在其下產生新的 <tr> 節點。
    TableWrapLeft
    建置器呼叫輸出會作為新的 <td> 元素,新增至「尋找標籤」選取框中具名之 <td> 元素的左邊。 例如,#old##new# 在下列程式碼中分別指定舊節點及新節點。
    <table>
    <tr>
    <td>#new#</td>
    <td>#old#</td>
    </tr>
    </table>
    註: 如果該節點位於 <td> 節點內部,且所包含的 <tr> 節點沒有同層級的節點,則 TableWrapLeft 只會在選取的 <td> 之前,產生新的 <td> 節點。
    TableWrapRight
    建置器呼叫輸出會作為新的 <td> 元素,新增至「尋找標籤」選取框中具名之 <td> 元素的右邊。 例如,#old##new# 在下列程式碼中分別指定舊節點及新節點。
    <table>
    <tr>
    <td>#old#</td>
    <td>#new#</td>
    </tr>
    </table>
    註: 如果該節點位於 <td> 節點內部,且所包含的 <tr> 節點沒有同層級的節點,則 TableWrapRight 只會在選取的 <td> 之後,產生新的 <td> 節點。
    封套
    會使用新的 SPAN 標籤來覆蓋元素,且並將新標籤命名為「新標籤名稱」欄位中所指定的名稱。
  5. 如果您選取「取代節點」以外的插入模式,請針對要插入新標籤名稱文字輸入中的元素輸入名稱。

在頁面上尋找控制項建置器呼叫

每個頁面位置技術 都會產生一個「頁面位置」字串,該字串會決定控制項建置器呼叫要新增至的頁面及頁面上的位置。

在具名標籤上
可讓您在頁面上指定要放置建置器呼叫的具名位置 (<input /><span /> 元素)。
相對於具名標籤
可讓您在頁面上指定一個位置,以取代具名元素,或者使用該具名元素來確定新具名元素的放置位置,以將建置器呼叫置於該位置上。
進階
可讓您輸入「頁面位置」語法,以指定在一個以上頁面上的一個以上位置,放置建置器呼叫。
對建置器位置輸入建立設定檔
可讓您根據使用者設定檔及角色,自訂控制項在頁面上的位置。
封套
當您啟用相對於具名標籤「頁面位置」技術時的其中一個「放置」選項。 它會將元素與新的 SPAN 標籤封裝在一起,並將新標籤命名為新標籤名稱欄位中指定的名稱。
使用進階技術尋找建置器

「進階」頁面位置技術可讓您建立複式頁面位置字串,以在多個頁面上 以多種方法尋找控制項建置器呼叫。

您可以在使用「在標籤上」或「相對於具名標籤」 技術來建置頁面位置表示式之後,再使用「進階」技術,然後使用「進階」技術在該表示式上進行建置。

下列頁面位置範例用於表現頁面位置語法的彈性:

  • Page StartingPage NameSearch firstBuilder

    StartingPage 頁面上的 firstBuilder 標籤。

  • AllPages NameSearch firstBuilder

    所有 (非產生的)「頁面」上所有名為 firstBuilder 的位置

  • Page StartingPage NameSearch firstBuilder else XPath HTML/BODY InsertInsideBottom firstBuilder

    在 StartingPage 中,搜尋名為 firstBuilder 的元素。 如果有找到,則為該節點。 如果找不到,則搜尋 XPath "HTML/BODY",並使用 InsertInsideBottom 來插入一個新節點,將其命名為 firstBuilder

  • (Page StartingPage NameSearch theBody else XPath HTML/BODY) InsertInsideBottom firstBuilder

    在 StartingPage 中,搜尋名為 theBody 的元素。 如果找不到,則搜尋 XPath "HTML/BODY"。 在這兩種情況下,都請使用 InsertInsideBottom 來插入一個新節點,並命名為 "firstBuilder"。

  • AllPages XPath HTML/BODY InsertInsideBottom Foo

    在所有頁面中,在 BODY 標籤內部的底端插入一個新節點,並命名為 Foo

  • (Pages where (Public = true), Page Extra) XPath HTML//FORM InsertInsideTop Header

    在所有公用頁面及名為 Extra 的「頁面」中,使用 XPath 來搜尋 FORM 標籤,然後在其內部頂端插入一個新節點。 將新節點命名為 Header

  • ((Page A, Page B) NameSearch OKButton, Page C NameSearch OK) TableWrapRight Cancel

    在三個具名元素 (在「頁面 A」及「頁面 B」上名為 OKButton 的元素,以及在「頁面 C」上名為 OK 的元素) 的右邊建立一個新元素,命名為 Cancel。

  • PagesWhere (true & TopLevel = true) NameSearch AdvancedButton

    針對所有內容 TopLevel 設為 true 的頁面,搜尋名為 "AdvancedButton" 的節點。

  • PagesWhere (TopLevel = true | AddAdvanced = true) NameSearch AdvancedButton

    對於所有內容 TopLevel 設為 true,或者內容 AddAdvanced 設為 true 的頁面,搜尋名為 AdvancedButton 的節點。

對建置器位置輸入建立設定檔

您可以對建置器輸入「頁面位置」區段的個別欄位建立設定檔,以及對整個「頁面位置」區段建立設定檔。

這樣做的原因是要根據使用者設定檔,自訂頁面上控制項的外觀及操作方式。 您可以使用兩種方式建立設定檔:
對整個「頁面位置」區段建立設定檔
使用這種方式,可以提供一般化的頁面自訂。
對「頁面位置」區段內的個別欄位建立設定檔
使用這種方式,可以提供更多精細的頁面自訂。
註: 兩種方式一起使用是沒有意義的。 如果對整個區段及個別欄位都已建立設定檔,則會使用指派給整個區段的設定檔。

JavaScript 準則:以防禦方式編碼

以防禦方式編碼模型,可防止 Script 錯誤。

以防禦方式編碼包括先檢查元素是否存在,然後再編寫其 Script。 例如,可以先開始執行事件及程式碼,再完整載入頁面。 這表示 Script 可能會在元素不存在時就試圖存取它。

在存取元素之前,請檢查文件中是否存在該元素。 可以藉由測試元素是否為空值來執行此動作。 如果元素為空值,則它尚不存在於物件模型中。

若要實作此修正程式,請建立會採用及測試物件的簡式函數。 如果測試失敗,使用者會接收到錯誤訊息,如果測試成功,程式碼會繼續如預期般執行。 例如:

function isTheObjectAroundYet(object) { 
  var passed = (object!=null) 
  if (!passed) 
  alert("The page is not completely loaded. 
  Please wait a moment and try again.") 
  return passed 
}
function exampleFunction() { 
  var theformneededtobeprocessed = document.forms["myForm"] 
  if (isTheObjectAroundYet(theformneededtobeprocessed)) {
  // it's okay to script to the form 
  } 
}

此測試適用於小型本地化測試。 然而,僅測試是否已載入頁面會更簡單。 請記得必須在下載完頁面上的內容及所有影像之後,才會發動 Onload 事件。 如果使用者的連線較慢,表示該事件要過一段時間才會發動。 在某些情況下,必須使用 Onload 事件 (例如,您想要載入影像,或在 Internet Explorer 中執行動態內容)。 但是,您常常只需要知道元素是否已準備好可進行 Script 編寫 (尚未載入的影像仍然可以進行 Script 編寫)。

使 Script 成為頁面上的最後一個項目,而不要使用 Onload 事件。 例如:

<SCRIPT> 
  function doLoad() { 
  // This is the script that will
  // execute when the page content is
  // loaded 
    } 
</SCRIPT> 
<BODY> 
  ...body content... 
  <SCRIPT> 
  // The last element in your document 
  // is a script calling the doLoad()
  // function 
    doLoad() 
  </SCRIPT> 
</BODY>
</HTML>

您可以建立用於追蹤頁面內容是否可用的旗標變數。 使用此方法,就不需要測試每個元素。

<SCRIPT> 
  var isLoaded = false 
  function doSomething() { 
  if (isLoaded) { 
  // run script 
  } 
  } 
</SCRIPT> 
<BODY> 
  ...body content... 
  <SCRIPT> 
  // The last element in your document 
  // is a script that sets the isLoaded
  // flag 
    isLoaded = true 
  </SCRIPT> 
</BODY>

總而言之,要以防禦方式編寫 Script。 因為可以先執行事件及 Script,再完整載入頁面,所以請勿低估不同計時對 Script 的影響。 測試是否存在物件,注意 Onload 事件及影像。

JavaServer Pages 準則

您可以使用特定建置器,將 JavaServer Pages (JSP) 引入模型中。

可以使用下列建置器。

JSP 指引
將 JSP 指引新增至模型中的頁面。
JSP 標籤
可讓您使用模型中頁面內的「JSP 標籤」庫。

除了使用這些 JSP 特定的建置器之外,您也可以手動編寫 JSP 或使用 IBM WebSphere Portlet Factory 頁面(例如「匯入的頁面」建置器、「頁面」建置器及「匯入的目錄」建置器)中現有的 JSP,但前提是它們不會執行下列動作。

  • 轉遞
  • 設定回應標頭

WebSphere Portlet Factory 頁面一律使用 include 來呼叫,而不允許執行這些動作。

假設它們遵循上述注意事項,「匯入的目錄」建置器通常可以正常運作,以併入一組現有 JSP(包括頁面間動作及鏈結)。

處理重新導向

如果匯入模型以供使用的任何 JSP 頁面包含任何重新導向程式碼,則需要使用模型中的方法重新實作此行為。

例如,如果模型中的頁面包含下列 JSP 程式碼,則需要建立處理相應頁面的方法。
<%
response.sendRedirect(response.encodeRedirectURL("http://127.0.0.1:7001/MyApp/results/success.html"));
%>

您需要變更處理此頁面的動作,以併入 JSP 頁面內含的任何邏輯,並處理 success.html 頁面。 您應該呼叫「匯入的頁面」建置器來匯入 success.html。 例如,模型中的方法會包含與下列內容類似的程式碼:

...
// incorporate any logic in JSP here.
webAppAccess.processPage("SuccessPage");
...

使用建置器呼叫取代 HTML 控制項

將頁面匯入模型之後,您便可以使用相對應建置器的呼叫來取代部分或全部 HTML 控制項。

使用建置器呼叫取代 HTML 控制項的準則如下:
控制項需要從模型中的其他元素取得資料,或為其提供資料
如果您要為該控制項提供模型中方法、變數或使用者輸入的資料,請使用建置器來取代現有的控制項。 如果該控制項是表單的一部分,且您要處理模型中的表單提交,請使用建置器呼叫來取代 HTML 控制項。
控制項需要對不同類型的使用者採取不同的行為
如果您要為該控制項提供模型中方法、變數或使用者輸入的資料,請使用建置器來取代現有的控制項。 如果該控制項是表單的一部分,且您要處理模型中的表單提交,請使用建置器呼叫來取代 HTML 控制項。

若要使用相對應的建置器呼叫來取代 HTML 控制項,請執行下列步驟:

  1. 開啟適當建置器的建置器呼叫編輯器。 例如,若要取代 HTML 按鈕,請開啟「按鈕」建置器的建置器呼叫編輯器。
  2. 在建置器呼叫編輯器的「頁面位置」小組件中,選取模型中包含您要以「按鈕」建置器呼叫取代之 HTML 按鈕的頁面名稱。
  3. 選取該頁面之後,請從頁面的具名標籤清單中選擇具名 <input /><span /> 標籤。
  4. 根據其在應用程式中的功能來配置建置器呼叫。

建立表單

如果您決定建立自己的表單,則需要執行下列步驟:

  1. 建立 HTML 頁面,將在其上放置提供提示及資料顯示方式的建置器呼叫。
  2. 建立方法、服務呼叫或 SQL 陳述式,以提供要顯示的資料,或將資料輸入用於表單。
  3. 提供用於提示輸入或顯示資料的控制項。
  4. 發動表單提交。
  5. 實作其他表單相關功能,包括表單驗證、轉換及格式化表單值,以及控制表單的顯示方式。

關於指定表單元素的 CSS 樣式

您可以在「資料頁」及「資料欄位修飾元」建置器中,定義表單元素樣式,並指定那些樣式。

您可以建立樣式表 (或直接在 HTML 頁面中定義樣式),並在「資料頁」及「資料欄位修飾元」建置器中指定那些 CSS 樣式,來決定表格標題、欄位標籤及其他表單元素的外觀。

您可以修改產生的 HTML 頁面,方法為在 HTML 頁面中指定您自己的 CSS 類別,並建立適當的 CSS 檔案。

若要確認您的變更會傳送到模型,請開啟可將頁面匯入至模型的「匯入的頁面」建置器,並在建置器呼叫編輯器中按一下確定

使用產生的樣式名稱

如果您從「資料頁」建置器呼叫中 (或從建置器呼叫編輯器中的「進階」群組) 產生範例 HTML 頁面,則 HTML 頁面會使用下列 CSS 類別名稱。

label
用於葉節點 (不包含其他元素的元素) 的標籤文字。
sectionLabel
用作分支節點 (具有子元素的元素) 的標籤。
outputData
用於葉節點中內含的資料
entireTable
用於重複元素之表格中的所有列
tableHead
用於重複元素之表格中的第一列
tableRow
用於重複元素之表格中的「主體」列
tableRowEven
用於重複元素之表格中的偶數列,其前提是您使用「資料欄位修飾元」建置器呼叫,來針對資料中相關聯的元素設定此樣式。
tableRowOdd
用於重複元素之表格中的奇數列,其前提是您使用「資料欄位修飾元」建置器呼叫,來針對資料中相關聯的元素設定此樣式。
Required
用於表示輸入表單中必要欄位的字元。
ErrorMessage
用於驗證失敗時所顯示的錯誤訊息。

您可以將下列 CSS 樣式定義用作開始點。 將它們複製到空白 CSS 檔案中,或將它們內含在產生之 HTML 頁面的 <STYLE /> 元素中。

.label { font-family: Arial, Helvetica, sans-serif; font-size:10pt;
font-weight: bold; color: #004E8E}
.sectionLabel { font-family: Arial, Helvetica,
sans-serif;font-size: 14pt; font-weight: bold; color: #000000}
.outputData { font-family: Arial, Helvetica, sans-serif;font-size:
10pt; font-weight: bold; color: #000000}
.entireTable { background-color: #e0e0e0}
.tableHead {background-color:#404040;color: #ffffff;font-family:
Arial,Helvetica,sans-serif; font-size: 10pt;font-weight: bold; }
.tableRow {background-color: #e0e0e0; color: #000000;font-family:
Arial, Helvetica, sans-serif; font-size: 10pt; }
.tableRowEven {background-color: #e0e0ff; color:
#000000;font-family: Arial, Helvetica, sans-serif; font-size: 10pt;
}
.tableRowOdd {background-color: #e0e0e0; color:
#000000;font-family: Arial, Helvetica, sans-serif; font-size: 10pt;
}
.Required {font-family: Arial, Helvetica, sans-serif;
font-size:10pt; font-weight: bold; color: #ff0000}
.ErrorMessage {font-family: Arial, Helvetica, sans-serif;font-size:
10pt; font-weight: bold; color: #ff0000}

使用樣式 Setter 建置器

本主題說明如何新增「樣式 Setter」建置器,將類別或樣式新增至頁面上的任何指定元素。

  1. 選取想要的模型。
  2. 按一下滑鼠右鍵並選擇格式化及可見性 > 樣式 Setter,以新增此建置器。

建立輸入表單

使用「資料頁」建置器,來建立提示使用者進行輸入的表單。

若要使用「資料頁」建置器建立輸入表單,請執行下列步驟:
  1. 新增頁面至您將用來顯示資料的模型。 此 HTML 頁面可以像資料一樣簡單,也可以像使用個案需要的一樣準確。
  2. 新增「資料頁」建置器呼叫至您的模型,指定顯示資料及包含資料之變數的頁面。
  3. 新增「按鈕」建置器呼叫 (或其他提交表單的動作建置器)。
    1. 將其動作類型設為提交表單並呼叫動作
    2. 將其動作設為 pageName_NextAction 方法,其中 pageName 是「資料頁」建置器呼叫操作的頁面名稱。
  4. 執行模型。
概觀:建立表單

您可以使用數種方式在 IBM WebSphere Portlet Factory 應用程式中建立表單。

  • 使用「資料頁」及「資料欄位修飾元」建置器,可以自動顯示及處理表單。
  • 使用個別建置器呼叫,可以實作資料的顯示、提示使用者輸入及處理使用者輸入。

在許多情況下,「資料頁」及「資料欄位修飾元」建置器所提供的架構具有足夠的延伸性,可以實作複雜的表單。 如果無法使用這些建置器來實作您的需求,則可以使用個別建置器呼叫來建立您自己的表單、甚至自己的表單架構。 使用「資料頁」及「資料欄位修飾元」建置器實作的表單可以提供更健全的架構來處理表單顯示,以及驗證輸入、處理輸入及錯誤。

建立輸入表單

您可以使用「資料頁」建置器,來建立提示使用者進行輸入的表單,以自動顯示輸入控制項及輸入的處理。

當您想要針對資料服務作業 (此作業不會傳回結果資料) 建立輸入頁面時,請使用「輸入表單」建置器。 此建置器會建立資料服務作業或方法的輸入頁面。 它與「視圖及表單」輸入頁面支援很相似,但是在提交輸入表單之後的下一個動作是使用者指定的動作。 此建置器適用於沒有要顯示之結果資料的作業。

因為「資料頁」建置器使用綱目來控制其行為,所以您只要變更定義表單輸入的綱目,即可變更表單。

「資料頁」建置器會在模型的頁面上,將輸入表單插入具名的位置。 此頁面可以像 Main and Page 基本模型中包括的 page1 頁面一樣簡單,也可以是由 HTML 設計器所建立的匯入頁面。 如果該頁面包含輸入元素,則「資料頁」建置器可將 XML 變數中的元素對映至這些輸入。 您還可以配置「資料頁」建置器,根據與變數相關聯的綱目,或頁面上定義的輸入欄位及綱目定義的元素組合,決定要顯示的輸入欄位。

關於以其他建置器呼叫置換表單行為

使用「資料欄位修飾元」建置器,可以置換表單行為。

針對資料中任何指定的元素,您都可以藉由使用「資料欄位修飾元」建置器呼叫,以及指定想要用來控制元素行為的建置器,置換「資料頁」實作的行為。 一般而言,如果您無法決定與資料相關聯之綱目或 HTML 頁面中的元素行為,則會置換元素的預設行為。

需要置換「資料頁」功能的某些特定使用個案包括:

  • 建立部分資料以外的鏈結
  • 使用資料來顯示影像 (例如,要使用之標誌的檔名可以儲存為資料的一部分)。

若要利用以「資料頁」建置器建立的表單來置換元素預設行為,請將「資料欄位修飾元」建置器新增至模型,並指定要變更其行為的元素。

關於使用您自己的 HTML 表單頁面

您可以決定顯示畫面或輸入表單的外觀。

提供實作所需佈置及顯示畫面的專屬 HTML 頁面。 「資料頁」建置器會讓所提供 HTML 中的具名 <input /><span /> 標籤與資料中的元素名稱一致。 在「資料頁」建置器呼叫中,請選擇要讓表單完全由 HTML 頁面決定,或完全由相關聯的資料綱目決定,或由 HTML 及綱目共同決定。 如果 HTML 頁面包含要顯示重複元素的表格,請指定整個表格或僅指定表格及列名稱。 同時使用 HTML 頁面及綱目來衍生表格外觀不是一種良好的作法。

建立專屬 HTML 頁面之前
您可以利用「資料頁」建置器,使用您自己的 HTML 頁面。 具名 <input /><span /> 標籤應該與變數中要儲存或顯示的資料元素相對應。
註: 如果您將「資料頁」建置器的頁面類型輸入設為從 HTML 推斷,則「資料頁」不會使用資源軟體組來決定表單中元素的標籤。 您指定的 HTML 頁面必須包含表單欄位的標籤。
關於將資料從其他來源新增至表格

正如您可以藉由限制所使用的具名 <span /><input /> 標籤來限制表格中所顯示的資料一樣,如果您要顯示表格的其他資料,可以將具名 <span /><input /> 標籤新增至表格,並使用部分其他建置器呼叫來顯示其他來源的資料。 例如,如果您想要顯示範例資料中每位客戶的電子郵件位址,請將另一個 <td /> 元素新增至客戶列,並從包含每位客戶之電子郵件位址的變數將資料移入此直欄。

修改輸入表單

使用各種建置器及 CSS 樣式修改輸入表單。

可以使用下列方式來修改「資料頁」建置器所產生的表單:
  1. 變更欄位標籤
    1. 在「資料頁」建置器呼叫中,開啟「標籤轉換設定」輸入群組,再按一下產生資源軟體組
    2. 修改所產生的內容檔,以便每個列出的元素都具有適當的標籤。
  2. 格式化及驗證表單值
    1. 使用「資料欄位修飾元」建置器呼叫及「格式製作程式」類別,將使用者輸入格式化為「資料友善的」的格式,將資料轉換為「使用者友善的」的格式,並針對提交的輸入執行伺服器端驗證。
  3. 控制表單外觀
    1. 在樣式表中指定 CSS 樣式。
    2. 將樣式表與呈現表單的頁面相關聯。
  4. 變更表單的佈置
    1. 使用「資料欄位修飾元」建置器呼叫來隱藏或變更表單元素的顯示方向。
關於變更表單佈置

您可以變更「資料頁」建置器產生的表單佈置。

使用「資料欄位修飾元」建置器,可以隱藏或控制資料元素的顯示。 您可以使用「資料欄位修飾元」建置器呼叫,指定想要隱藏的元素,然後啟用隱藏元素輸入,來隱藏表單資料的元素。

依預設,「資料頁」建置器會垂直顯示非重複的元素,例如範例資料中的 <street /><city /><state /><zip /> 元素。 若要水平顯示這些元素,請將欄位輸入設為包含非重複元素 (在此情況下,<address />) 的元素,並針對儲存器顯示方向啟用水平選項。

依預設,「資料頁」建置器會在表格中顯示重複元素。 若要垂直顯示重複元素,請將欄位輸入設為包含重複元素的元素,並對儲存器顯示方向輸入啟用垂直選項。

從多個變數建立表單

您可以透過「已建立設定檔 Web 服務呼叫」建置器所產生的多個變數,建立表單。

服務呼叫經常針對特定服務呼叫作業定義數個輸入。 您可以配置「已建立設定檔 Web 服務呼叫」建置器來產生變數,讓它從其中取得與服務呼叫相對應的輸入值。 (如果您有 WSDL 文件中所定義的作業,則使用「Web 服務呼叫」建置器)。 若要產生這些輸入的輸入表單,您可以使用「資料頁」建置器呼叫,指定服務呼叫所產生的所有輸入變數。

下列步驟會針對配置服務呼叫以產生變數,以及設定「資料頁」建置器呼叫以根據那些變數來產生表單的作業,提出其程序大綱。

  1. 將服務呼叫新增至採用多個輸入的模型。
    1. 在「已建立設定檔 Web 服務呼叫」建置器呼叫編輯器中,啟用自動建立輸入變數輸入。
    2. 請注意所建立的變數名稱 (您也可以變更這些名稱)。

      這些是「資料頁」建置器呼叫可用來建立輸入表單的變數。 例如,MyServiceCall_arg1_fromZip 及 MyServiceCall_arg2_toZip。

  2. 將「資料頁」建置器呼叫新增至您的模型中,並指定與下列內容類似的值。
    Variables/MyServiceCall_arg*
    請注意萬用字元 (*) 的使用。 此值會提示「資料頁」使用名稱以 MyServiceCall_arg 開頭的所有變數。
  3. 繼續以正常方式配置「資料頁」建置器呼叫。

    在顯示「資料頁」插入表單的頁面時,會將多個輸入顯示成如同它們來自單一個變數。

重設表單

您可以重新顯示表單頁面,並將表單值重設成原始值。

使用由「資料頁」建置器呼叫新增至 WebApp 的 pageName_Initialize 方法。 在您使用「資料欄位修飾元」建置器呼叫時,「資料頁」建置器呼叫會新增此方法,以設定表單中一個以上的欄位起始值。

若要起始設定表單,請執行下列步驟。

  1. 針對您要設定起始值的每一個欄位,將「資料欄位修飾元」建置器呼叫新增至您的模型。
  2. 在每個「資料欄位修飾元」呼叫中,設定起始值輸入。
  3. 在重新載入表單頁面的模型動作或 Java 程式碼中,新增呼叫至 pageName_Initialize 方法。
    例如,當使用者按一下表單上的「重設」按鈕時,可以使用下列程式碼來重新起始設定表單。
    public void resetForm(WebAppAccess webAppAccess) {
    webAppAccess.callMethod("myFormPage_Initialize");
    webAppAccess.processPage("myFormPage");
    }

根據 XML 變數顯示輸入表單

在存取 XML 變數內容的簡式表單中,您可以顯示基於 XML 變數內容的資料。

  1. 開啟「資料頁」建置器呼叫。
  2. 頁面類型設為資料輸入
  3. 執行模型。
註: 您需要新增動作控制項 (如「按鈕」建置器呼叫),以提交表單並將輸入儲存至您在「資料頁」建置器呼叫中指定的變數。

範例:簡式表單

您可以建立一個模型,以試著使用「資料頁」建置器及其各種特性。

從模型產生的表單是基本表單,用來為其他表單相關作業 (如變更表單的佈置、指定表單元素的 CSS 樣式及設定輸入標籤) 提供環境定義。

簡式表單:範例 XML

這是範例 XML 表單。

<customers>
   <customer>
      <name>Joe</name>
      <id>1122</id>
      <address>
         <street>416  Lowell St.</street>
         <city>Andover</city>
         <state>MA</state>
         <zip>01810</zip>
      </address>
   </customer>
</customers>

顯示 XML 變數的內容

您可以建立「僅限檢視」表單,來顯示 XML 變數的內容。

請執行下列步驟:
  1. 建立新的「Main and Page」模型。
  2. 建立具有要顯示之資料的 XML 變數。
  3. 將「簡式綱目產生器」建置器呼叫新增至模型來產生綱目。 將修改變數設為 true,這會將原始變數宣告為新綱目定義的類型。
  4. 將「資料頁」建置器呼叫新增至模型。
    1. 頁面設為 page1
    2. 變數設為您在步驟 2 中建立的變數。
    3. 頁面類型設定為僅限檢視
    4. 保持從綱目建立標籤為啟用狀態。
    5. 新標籤的位置設定為 namedTag
    6. 新增 HTML 元素名稱設為新增名稱
  5. 執行模型。

將表單欄位設為唯讀

您可以使用所產生之頁面上的輸入控制項,來指定使用者可以變更的元素。

  1. 開啟「資料頁」建置器呼叫。
  2. 按一下建立範例 HTML頁面按鈕。 產生的頁面包含具名的 <span /> 標籤,「資料頁」建置器會將變數中每個元素的輸入控制項置於此標籤中。
  3. 開啟產生的 HTML 網頁,並將您要使用者變更之元素的標籤類型從 <span /> 變更為 <input />
  4. 將「匯入的頁面」建置器呼叫新增至模型,將範例 HTML 檔案指定為要匯入模型的檔案。
  5. 開啟「資料頁」建置器呼叫,並將頁面類型設為從 HTML 推斷
  6. 執行模型。

新增建置器呼叫以提交表單

使用「按鈕」建置器、「鏈結」建置器或 HTML 事件動作,以進行表單提交。

與任何其他 HTML 表單頁面相似,「資料頁」建置器操作的頁面也需要部分 UI 控制項,以讓使用者提交表單。 您可以使用「按鈕」或「鏈結」建置器呼叫,將相對應的控制項新增至頁面,或可以使用「HTML 事件動作」,讓使用者在發動特定 HTML 事件 (例如,按一下控制項或變更文字框的值) 時提交表單。

若要新增可讓使用者提交表單的控制項:

  1. 決定您想要讓使用者提交表單的方式。 此範例使用「按鈕」建置器作為範例。 針對「鏈結」、「HTML 事件動作」或「影像按鈕」建置器,使用此處所說明的動作類型及動作設定。
  2. 動作類型值設為提交表單並呼叫動作
  3. 動作值設為 DataPageName_NextAction
註: 如果您想要執行任何伺服器端驗證,請針對提交控制項的動作值指定該方法的名稱。 在執行驗證的方法中,請確定呼叫 DataPageName_NextAction 方法是要執行的最後一個動作。

將資料頁建置器呼叫新增至模型

如果模型具有「資料頁」建置器可以在其上放置 (或使用) 表單的頁面,請配置「資料頁」建置器呼叫,以實作想要的表單行為。

「資料頁」建置器可以操作輸入表單、僅限檢視表單或混合輸入及僅限檢視欄位的表單。 這些指示與建立輸入表單相關。 若要配置「資料頁」建置器呼叫來建立輸入表單:

  1. 在「資料頁」建置器呼叫編輯器中,指定您要用來儲存資料的變數。 如果 HTML 頁面未定義輸入,請建立此變數與綱目元素 (它說明要併入表單中的欄位) 的關聯性。
  2. 針對頁面類型輸入啟用資料輸入圓鈕。 這樣會提示「資料頁」建置器在「資料頁」操作的資料中,為每個元素插入 <input/> 標籤。
  3. 選擇性的: 展開輸入控制項設定輸入區段,並指定輸入值。 這些輸入會決定頁面呈現輸入控制項的方式。
  4. 展開必要欄位輸入驗證設定輸入區段,並指定成功動作失敗動作輸入的值。 執行此動作會提示「資料頁」建置器呼叫,將 DataPageName_NextAction 方法新增至 WebApp。 將此方法指定為提交控制項之動作輸入的值。

建立表單的範例 HTML 頁面

使用「資料頁」建置器來建立輸入表單的範例 HTML 頁面。

產生此範例頁面,然後將所產生的頁面匯入模型。 HTML 設計器可以取得此頁面,並根據專案需求重新設計。 只要設計器沒有移除或變更資料頁操作的具名 <span /> 標籤,則所有項目都可以運作。

若要使用「資料頁」建置器建立範例 HTML 頁面,請執行下列步驟:

  1. 在「資料頁」建置器呼叫編輯器中,展開進階輸入區段。
  2. 按一下建立範例 HTML
  3. 建立範例 HTML對話框中,指定頁面的位置,再按一下建立
  4. 儲存建置器呼叫之後,才會建立頁面。 若要儲存建置器呼叫,請在「資料頁」建置器呼叫編輯器中按一下套用確定

建立所有表單欄位的內容檔

使用「資料頁」建置器,可以修改表單中的所有標籤。

您可以使用「資料頁」建置器的「建立資源軟體組」功能,來建立定義表單中每個元素標籤的內容檔。 使用內容檔來決定欄位標籤,可讓您無需編輯模型即可修改表單標籤。 如果您決定本地化應用程式,則它還會為您提供起點。

若要產生所有表單欄位的內容檔,請執行下列步驟:

  1. 開啟模型中的「資料頁」建置器呼叫。
  2. 展開「標籤轉換設定」輸入群組。
  3. 按一下建立資源軟體組按鈕,並指定內容檔的位置及名稱。 例如,FormLabels.properties。 (務必要併入 .properties 副檔名。) 位置必須在 IBM WebSphere Portlet Factory 類別路徑中。 在開發期間,建議使用 WEB-INF/work/classes,以便您無需重新啟動 WebSphere Portlet Factory 應用程式,就可以查看內容檔的變更。
  4. 資源軟體組名稱輸入設為您剛建立的內容檔名稱。 請勿使用 .properties 副檔名。 例如,example_simple_forms
  5. 在「資料頁」建置器呼叫編輯器中,按一下確定 畫面上會顯示錯誤,說明找不到內容檔。 按一下產生模型圖示來「挑選」新的內容檔。
  6. 在偏好的文字編輯器中編輯新的內容檔並儲存它。
  7. 執行模型以查看新表單。

修改單一表單元素的標籤

如果只想要變更資料中一個元素的標籤,則可以使用「資料欄位修飾元」建置器。

若要變更個別欄位的標籤:
  1. 將「資料欄位修飾元」建置器呼叫新增至模型,指定要變更其標籤的元素。
  2. 產生標籤輸入啟用選項。
  3. 輸入新標籤作為標籤輸入的值。

關於設定表單欄位的標籤

您可以置換「資料頁」建置器產生的預設標籤。

「資料頁」建置器會根據元素名稱 (是在與表單上所顯示的資料相關聯之綱目中定義),為每個表單欄位產生標籤。 例如,元素 <customer /> 的輸入標籤是 "customer"。 您通常會為每個表單欄位設定您自己的標籤。

您可以使用內容檔來置換預設的輸入標籤,此內容檔會列出每個元素名稱,以及要用於每個元素的標籤。 例如,<customer=Customer Name> 可以是內容檔中的一個項目。 在表單中,與資料中之 <customer /> 元素相對應的欄位為客戶名稱

您可以使用「資料頁」建置器來產生內容檔,它包含表單上每個元素的項目。 然後,您可以將此內容檔指定為「資料頁」建置器要使用的資源軟體組。

從資料產生 HTML 頁面

您可以配置「資料頁」建置器呼叫,產生以資料為基礎的 HTML 頁面。

  1. 開啟「進階」輸入群組。
  2. 按一下建立範例 HTML,然後在建置器呼叫編輯器中按一下確定
「資料頁」建置器呼叫會產生 HTML 頁面,其含有根據「資料頁」變數中所含資料來指定的 <input /><span /> 標籤。

使用表單中的表格

當您使用「資料頁」建置器來建立要使用的 HTML 頁面時,可以控制「資料頁」建立此表格的方法:

請執行下列其中一個程序:
  1. 容許「資料頁」建置器建構表格。
  2. 自行建立 HTML 表格。
  3. 容許 HTML 頁面決定要在表格中顯示的元素及表格的外觀。

容許資料頁建置器建構表格

此技術是在您的 HTML 頁面中使用空白的 <table name="ContainerElement "/> 節點,「資料頁」會在此 HTML 頁面上為您建構表格。

  1. 在「資料頁」建置器呼叫編輯器中,啟用儲存器節點的使用資料製作 UI 輸入。 「資料頁」建置器將分析 <customer /> 的子項,以建立「表格」標題列及表格資料列 (這是重複列)。 請查看下列範例資料:
    ...
    <customers>
    <customer>
    <name>Joe</name>
    <id>111</id>
    <phone_number>555-1234</phone_number>
    </customer>
    <customer>
    <name>Jane</name>
    <id>222</id>
    <phone_number>555-2345</phone_number>
    </customer>
    <customer>
    <name>Jill</name>
    <id>333</id>
    <phone_number>555-3456</phone_number>
    </customer>
    </customers
    ...
  2. 若要提示「資料頁」建置器建構表格來顯示客戶元素:
    1. 在頁面中使用下列 HTML 來定義表格: <table name="customers" />
    2. 在「資料頁」建置器呼叫中,啟用使用資料製作 UI 輸入。

自行建立 HTML 表格

如果您想要更精確地控制表格的佈置,則可以套用此技術。

  1. 在您的 HTML 頁面中,實作含有 <span /> 標籤名稱的表格,且這些標籤符合要顯示之結構所含重複元素中的每個資料元素。
  2. 當您建立自己的 HTML 表格時,請在「資料頁」建置器呼叫中停用使用綱目製作 UI 輸入。 否則,資料頁會嘗試將您所提供的 UI 與產生的 UI 混合,這可能不是您想要的結果。

容許 HTML 頁面決定要在表格中顯示的元素及表格的外觀

請遵循下列步驟,以容許 HTML 頁面決定要在表格中顯示的元素及表格的外觀。

  1. 在 HTML 頁面中併入表格的所有程式碼。 例如,下列 HTML 會指定標題列,之後接著為資料中每個重複元素而重複的資料列:
    <table name="customers">
    <tr><th>Name</th><th>ID</th></tr>
    <tr name="customer"><td><span name="name"></span></td><td><span name="id"></span></td></tr>
    </table>
    註: 此 HTML 也會從表格中移除 <phone_number /> 元素。 將會顯示 HTML 中符合 <span/><input /> 標籤名稱的所有資料。
  2. 在「資料頁」建置器呼叫中,停用使用資料製作 UI 輸入。

使用資料頁建置器顯示資料

「資料頁」建置器讓您能夠顯示服務呼叫、SQL 陳述式或任何其他提供資料之建置器呼叫的結果。

該資料需要由綱目來定義,才能讓「資料頁」建置器運作。 大多數的服務呼叫及 SQL 陳述式建置器呼叫都會將綱目新增至定義了傳回之資料的模型。

若要使用「資料頁」建置器顯示資料:

  1. 新增建置器呼叫至提供要顯示之資料的模型。 例如,您可以使用「資料頁」建置器來顯示服務呼叫或 SQL 陳述式建置器呼叫的結果。
  2. 新增頁面至您將用來顯示資料的模型。 此 HTML 頁面可以像資料一樣簡單,也可以像使用個案需要的一樣準確。
  3. 新增「資料頁」建置器呼叫至您的模型,指定顯示資料及包含資料之變數的頁面。
  4. 新增建置器呼叫至執行擷取資料及顯示頁面之動作的模型。
  5. 執行模型。
產生的頁面會以相對地原始格式,顯示您在「資料頁」建置器呼叫中指定之變數的資料。

關於決定要顯示的資料

不論資料的來源為何,「資料頁」建置器都會操作模型中的變數。

服務呼叫會將它們的結果儲存在 ServiceCallName_reply 變數中,而您可以使用「SQL 轉換至 XML」建置器呼叫,在變數中儲存 SQL 陳述式的結果。

如果您要顯示變數中的所有資料,請將「資料頁」建置器呼叫的變數輸入設為包含您要顯示之資料的變數名稱。

如果您要顯示該資料的某一部分,請使用參照選擇器,以向下「瀏覽」XML 結構至您想要顯示的節點。

設定應用程式層面的日期及時間格式

使用「日期/時間格式製作程式」建置器可以控制是否以特定格式顯示日期及時間值。

此建置器會變更伺服器的預設日期及時間格式,以便為模型中的所有日期及時間變數指派相同的格式。 若要指定伺服器的特定日期及時間格式,請執行下列步驟:

  1. 開啟「日期/時間格式製作程式」建置器呼叫編輯器。
  2. 日期格式輸入中,選取值。
  3. 時間格式輸入中,選取值。
  4. 日期時間格式輸入中,選取值。
  5. 按一下確定,以儲存建置器呼叫。

當您執行包含此建置器的模型時,您會看到採用所指定格式的日期及時間。 請記住,您選取的格式會置換伺服器設定的格式,並會套用至模型中的所有「日期」、「時間」及「日期時間」變數的內容。

使用資料欄位修飾元建置器驗證

「資料欄位修飾元」建置器可用於驗證日期及時間。

  1. 依如下所示方式,配置「資料欄位修飾元」建置器:
    Name: inputdate
    Fields
    List of Fields to be modified:
    [page1]page1/DateTime/inputdate
    Label: Date & Time Variable:
    Formatter Class: com.bowstreet.builders.webapp.pageautomation.StandardFormatter
    	Validate Expression: Required Date(FormatString)
    	Validate Exp Argument: "empty"

    如果您將「驗證表示式引數」保留空白,將會使用預設格式。

  2. 若要讓建置器驗證其他格式的日期,可以在「驗證表示式引數」中輸入其他格式。

使用「日期/時間格式製作程式」建置器驗證日期及時間

「日期/時間格式製作程式」建置器可用於驗證日期及時間。

  1. 開啟「日期/時間格式製作程式」建置器,並遵循下列步驟:
    1. 如果要驗證的變數是 DateTime 或 dateTime 資料類型,則不需要執行任何動作。 「日期/時間格式製作程式」會根據建置器中已併入的數種格式,來嘗試驗證日期。

      如果向下捲動「日期」、「時間」及「日期時間」欄位,但沒有看到要使用的格式,則您可以在「所要求的剖析器」欄位中輸入此格式。 建置器會先從上到下嘗試這些欄位中的所有格式,然後再嘗試剖析 IBM WebSphere Portlet Factory Designer 中內建的格式。

      Requested Parsers:
      Format:
      dd MM yyyy hh:mm
    2. 如果要驗證的變數不是 DateTime 或 dateTime 資料類型,但應該將它視為這幾種資料類型之一 (例如 String),則請在欄位:欄位中輸入此變數。 這會通知建置器,嘗試將變數宣告成的資料類型轉換/強制轉型成有效的 dateTime 或 DateTime 資料類型。 之後,建置器會嘗試剖析該變數,看看它是否與建置器中或所要求的剖析器欄位中的格式相符。
  2. 針對每個變數,您也可以決定建置器如何轉換該變數。 在「欄位」表格中,輸入「日期時間」、「日期」或「時間」
    Fields:
    Fields: Type
    [page2]dateTimeVarDisplay/dateTimeVar DateTime
  3. 將「資料頁格式製作程式」建置器置於建置器呼叫清單的底部。

格式化及驗證表單值

使用此說明中的步驟,來進行特殊化且詳細的欄位格式化。

若要對用於顯示欄位的設定執行限制變更,請使用「資料欄位設定」建置器。

「資料欄位修飾元」建置器與 Java 類別中的方法一起使用,可讓您變更欄位值作為資料顯示或儲存時的格式,並提供輸入值的伺服器端驗證。 在下列 Java 介面中,會定義用來執行格式化及驗證的方法。
com.bowstreet.methods.IInputFieldFormatter
您可以變更一個以上欄位的顯示格式、資料格式及驗證方法。
  1. 建立格式製作程式 com.bowstreet.methods.IInputFieldFormatter 介面。 新增可執行所需格式轉換的方法及格式表示式。
  2. 新增「資料欄位修飾元」建置器呼叫至您的模型,指定下列輸入值:
    欄位
    使用選擇器來選取指定的格式化方法將操作的一或多個欄位。
    格式製作程式類別
    輸入您建立之格式製作程式類別的完整名稱。
    格式表示式
    選擇其中一個列出的格式表示式。 這些格式表示式會在格式製作程式類別中指定,並對應於該類別中的方法。 此方法會變更該欄位儲存於資料中的格式,以使其可讀性更高,或滿足某些其他顯示需求。
    轉換表示式
    選擇其中一個列出的轉換表示式。 這些轉換表示式會在格式製作程式類別中指定,並對應於該類別中的方法。 此方法會將使用者輸入的欄位值格式,變更為由綱目或某些其他資料儲存需求所指定的格式。
    驗證表示式
    選擇其中一個列出的驗證表示式。 這些驗證表示式會在格式製作程式類別中指定,並對應於該類別中的方法。 此方法會變更該欄位儲存於資料中的格式,以使其可讀性更高,或滿足某些其他顯示需求。
  3. 執行模型。

格式化日期及時間值

IBM WebSphere Portlet Factory Designer 提供數個建置器,可以用來控制日期、時間及日期時間值的格式。

在大多數情況下,這些值會儲存在變數中,您可以個別控制它們的格式,也可以在整個模型或應用程式中全域控制它們的格式。 您可以自訂日期及時間的顯示格式,也可以驗證使用者輸入的日期及時間值。 IBM WebSphere Portlet Factory Designer 包括一個 StandardFormatter 類別,可用於控制日期及時間的格式化作業。

驗證日期或時間使用者輸入

有兩種方式可以驗證「日期」或「時間」輸入資料。

第一種是使用「資料頁格式製作程式」建置器,這會嘗試尋找 IBM WebSphere Portlet Factory Designer 中包含的格式,或將其與「必要剖析器」區段中的自訂格式比對。 第二種方式是使用「資料欄位修飾元」建置器,利用「設計器」中包含的「標準格式製作程式」來進行驗證及轉換。

建立格式製作程式類別

格式製作程式類別會提供由「資料欄位修飾元」建置器呼叫控制之欄位及輸入的格式化及驗證功能。

格式製作程式類別會實作 com.bowstreet.methods.IInputFieldFormatter 介面,並包括格式化及驗證表單欄位之下列各方面的程式碼:
  • 定義格式化、轉換及驗證輸入之表示式的清單。 這些表示式說明執行作業之相對應的方法,並用於「資料欄位修飾元」建置器呼叫,以識別格式製作程式類別中的每種方法。
  • 實作 format、translate 及 validate 方法。
  • 實作公用程式方法,例如取得並設定錯誤訊息,或取得表示式的清單。

格式製作程式會採用原始電話號碼資料 (例如,2075558487),並將它格式化為以點隔開的格式 (例如,207.555.8487) 或以橫線隔開的格式 (例如,(207)555-8487) 格式。 它也會確保使用者僅使用其 validate 方法輸入數值字元。

您可以在單一格式製作程式類別中實作任意數量的格式、轉換或驗證作業。

IInputFieldFormatter 介面

當您開始開發您的格式製作程式類別時,請實作 IInputFieldFormatter 介面。

下面的程式碼可作為簡式格式製作程式的開頭:
import java.util.List;
import java.util.ArrayList;
import com.bowstreet.methods.IInputFieldFormatter;
import com.bowstreet.webapp.WebAppAccess;
public class SimpleFormatter implements IInputFieldFormatter
{
}

匯入的類別將用來建置表示式清單,並與 webAppAccess 物件進行互動。

format 方法實作

format 方法會檢查它接收及呼叫適當作業的表示式,將值當作引數傳遞至該作業。

註: 此實作包括檢查並查看錯誤訊息在格式化值之前是否為空值,這可讓重新顯示的表單具有與使用者輸入時相同的使用者輸入,而不是那些已經格式化的輸入。
public String format(String value, String expression) {
String result = null;
if(getErrorMessage() == null) {
if (expression.equals(PHONEDOTS)) {
result = phoneWithDots(value);
}
else if (expression.equals(PHONEDASHES)){
result = phoneWithDashes(value);
}
}
else {
result = value;
}
return result;
}

在此情況下,format 方法會檢查並查看表示式是否等於之前定義的其中一個表示式常數。 下列程式碼片段顯示 phoneWithDotsphoneWithDashes 方法。

String phoneWithDots(String value) {
String dotvalue = value.substring(0,3)+ "." + value.substring(3,6) +
"." + value.substring(6,value.length());
return dotvalue;
}
String phoneWithDashes(String value) {
String dashvalue = "(" + value.substring(0,3)+ ") " + value.substring(3,6) +
"-" + value.substring(6,value.length());
return dashvalue;
}
格式製作程式基礎架構

在新增執行格式化、轉換及驗證的程式碼之前,您需要協助建立各種表示式清單,以及部分錯誤訊息文字。

SimpleFormatter 會對格式製作程式基礎架構使用下列成員變數:
private String errorMessage;
private WebAppAccess webApp;
protected static List formatExpressionList = null;
protected static List translateExpressionList = null;
protected static List validateExpressionList = null;
// Set constants for format expressions
public final static String PHONEDOTS = "Phone # with Dot Separators";
public final static String PHONEDASHES = "Phone # with Dash Separators";
// Build up array of format expression constants
private static final String[] formatExpressions =
{
PHONEDOTS, PHONEDASHES
};
// Use the makeList method to build up the expression lists
static
{
formatExpressionList = makeList(formatExpressions);
//translateExpressionList = makeList(translateExpressions);
//validateExpressionList = makeList(validateExpressions);
}
// You can create your own way to build up the expression lists or copy this one
protected static List makeList(String[] array)
{
List list = new ArrayList(array.length);
for (int i = 0; i < array.length; i++)
list.add(array[i]);
return list;
}

此外,IInputFieldFormatter 介面還會宣告取得並設定這些資源的方法。 下列程式碼會顯示這些方法的簡單實作:

/* These methods are quick implementations of those defined in the IInputFieldFormatter
*/
public void setErrorMessage(String msg) { errorMessage = msg; }
public String getErrorMessage() { return errorMessage;}
public void setWebAppAccess(WebAppAccess webApp) { this.webApp = webApp; }
public WebAppAccess getWebAppAccess() { return webApp; }
public void setTranslateSuccessFlag(boolean parm1) { }
public boolean getTranslateSuccessFlag() { return true; }
public List getFormatExpressionList() { return formatExpressionList; }
public List getTranslateExpressionList() { return translateExpressionList; }
public List getValidateExpressionList() { return validateExpressionList; }
轉換方法實作

當使用者輸入電話號碼時,他們可以在輸入時不使用任何分隔字元,也可以使用某種分隔字元 (例如點或橫線)。

您可以使用 translate 方法,將使用者輸入變更為資料預期的格式。 下列內容顯示 translate 方法,它與 format 方法非常相似,由於它會檢查傳遞至它的表示式,並呼叫相對應的作業,該作業實際上會將使用者輸入轉換為有效的資料格式。
public String translate(String value, String expression) {
String result = null;
if (expression.equals(PHONEDATA)) {
result = stripPhoneNumber(value);
}
return result;
}

與 format 方法的情況一樣,translate 方法會檢查並查看表示式是否等於其中一個預先定義的表示式常數,並呼叫提供 value 作為其引數的方法。 下列程式碼範例會顯示 stripPhoneNumber 方法:

private String stripPhoneNumber(String value) {
String result = value;
String temp = value;
if(value.indexOf('.') > -1) {
temp = value.trim();
StringBuffer sb = new StringBuffer(temp);
for(int i= sb.length() - 1;i > -1;i--){
char c = sb.charAt(i);
if (c == '.'){
sb.deleteCharAt(i);
}
}
result = sb.toString();
} //end if
else if (value.indexOf('-') > -1) {
StringBuffer sb = new StringBuffer(temp);
for(int i= sb.length() - 1;i > -1;i--){
char c = sb.charAt(i);
if (c == ' ' || c == '(' || c == ')' || c == '-'){
sb.deleteCharAt(i);
} //end if
}
result = sb.toString();
}
return result;
}
Validate 方法實作

validate 方法遵循分析表示式及呼叫適當方法的程序來執行實際的作業;在此情況下,驗證使用者在輸入電話號碼時是否僅使用數值字元。

public boolean validate(String value, String expression) {
boolean result = false;
if(expression.equals(VALIDATEPHONE)) {
result = validatePhoneNumber(value);
}
return result;
}

validatePhoneNumber 方法會檢查並查看 value 引數是否僅由數值字元組成:

boolean validatePhoneNumber(String value) {
boolean result = true;
char ch;
for(int index = 0; index < value.length(); index++) {
ch = value.charAt(index);
if (ch<48 || ch>57) {
result=false;
setErrorMessage("Phone numbers cannot include letters.");
}
}
return result;
}
失敗驗證的錯誤訊息

在上面的程式碼範例中,請注意如果發現字元在數值字元的 ASCII 範圍之外,程式碼便會呼叫 setErrorMessage 方法,設定含有適當錯誤訊息的訊息字串。

SimpleFormatter 程式碼
package doctest.datapage;
import java.util.List;
import java.util.ArrayList;
import com.bowstreet.methods.IInputFieldFormatter;
import com.bowstreet.webapp.WebAppAccess;
public
class SimpleFormatter implements IInputFieldFormatter
{
private
String errorMessage;
private WebAppAccess webApp;
protected static
List formatExpressionList = null;
protected static List translateExpressionList
= null;
protected static List validateExpressionList = null;
public
final static String PHONEDOTS = "Phone # with Dot Separators";
public
final static String PHONEDASHES = "Phone # with Dash Separators";
public
final static String PHONEDATA = "Translate Phone # to Data Fromat";
public
final static String VALIDATEPHONE ="Validate Phone #";
private static
final String[] formatExpressions =
{
PHONEDOTS, PHONEDASHES
};
private
static final String[] translateExpressions =
{
PHONEDATA
};
private
static final String[] validateExpressions =
{
VALIDATEPHONE
};
static
{
formatExpressionList
= makeList(formatExpressions);
translateExpressionList = makeList(translateExpressions);
validateExpressionList
= makeList(validateExpressions);
}
/**
* @see com.bowstreet.methods.IInputFieldFormatter#format(String,
String)
*/
public String format(String value, String expression)
{
String result = null;
if(getErrorMessage() == null) {
if
(expression.equals(PHONEDOTS)) {
result = phoneWithDots(value);
}
else
if (expression.equals(PHONEDASHES)) {
result = phoneWithDashes(value);
}
}
else
{
result = value;
}
return result;
}
/**
*
@see com.bowstreet.methods.IInputFieldFormatter#translate(String, String)
*/
public
String translate(String value, String expression) {
String result =
null;
if (expression.equals(PHONEDATA)) {
result = stripPhoneNumber(value);
}
return
result;
}
/**
* @param value The input value to be validated.
*
@param expression The description of the validation method to be performed.
*
*
@see com.bowstreet.methods.IInputFieldFormatter#validate(String, String)
*/
public
boolean validate(String value, String expression) {
boolean result =
false;
if(expression.equals(VALIDATEPHONE)) {
result = validatePhoneNumber(value);
}
return
result;
}
/* These methods are quick implementations of those
defined in the IInputFieldFormatter
*/
public void setErrorMessage(String
msg) { errorMessage = msg; }
public String getErrorMessage() { return
errorMessage;}
public void setWebAppAccess(WebAppAccess webApp) { this.webApp
= webApp; }
public WebAppAccess getWebAppAccess() { return webApp; }
public
void setTranslateSuccessFlag(boolean parm1) { }
public boolean getTranslateSuccessFlag()
{ return true; }
public List getFormatExpressionList() { return formatExpressionList;
}
public List getTranslateExpressionList() { return translateExpressionList;
}
public List getValidateExpressionList() { return validateExpressionList;
}
String phoneWithDots(String value) {
String dotvalue = value.substring(0,3)+
"." + value.substring(3,6) +
"." + value.substring(6,value.length());
return
dotvalue;
}
String phoneWithDashes(String value) {
String
dashvalue = "(" + value.substring(0,3)+ ") " + value.substring(3,6) +
"-"
+ value.substring(6,value.length());
return dashvalue;
}
/**
*
Method stripPhoneNumber.
* @param value
* @return String
*/
private
String stripPhoneNumber(String value) {
String result = value;
String
temp = value;
if(value.indexOf('.') &gt; -1) {
temp = value.trim();
StringBuffer
sb = new StringBuffer(temp);
for(int i= sb.length() - 1;i &gt; -1;i--){
char
c = sb.charAt(i);
if (c == '.'){
sb.deleteCharAt(i);
}
}
result
= sb.toString();
} //end if
else if (value.indexOf('-') &gt; -1)
{
StringBuffer sb = new StringBuffer(temp);
for(int i= sb.length()
- 1;i &gt; -1;i--){
char c = sb.charAt(i);
if (c == ' ' || c ==
'(' || c== ')' || c== '-'){
sb.deleteCharAt(i);
} //end if
}
result
= sb.toString();
}
return result;
}
boolean validatePhoneNumber(String
value) {
boolean result = true;
char ch;
for(int index =
0; index < value.length(); index++)
{
ch = value.charAt(index);
if
(ch<48 || ch&gt;57)
{
result=false;
setErrorMessage("Phone
numbers cannot include letters.");
}
}
return result;
}
protected
static List makeList(String[] array)
{
List list = new ArrayList(array.length);
for
(int i = 0; i < array.length; i++)
list.add(array[i]);
return
list;
}
}</p>

建立支援新增列的表格

您可以建立使用按鈕來新增列的表格。

  1. 將下列建置器新增至模型:
    • 頁面
    • 主要動作清單 (載入頁面)
    • 要用作資料來源的「變數」、「SQL 呼叫」或某些其他建置器
    • 要建立「資料」之 UI 的「資料頁」(將此項設為「資料輸入」)
    • 資料直欄修飾元
    1. 在「資料直欄」修飾元中,新增列方法 = 空白。 實際上,如果您不需要撰寫要在新增列程序期間執行的其他程式碼,則可以將此項留為空白。 而且,這一般會是新增列至資料庫時所需的內容。
  2. 新增按鈕至頁面並將其標示為「新增列」。 「資料頁」會為您建立新增列方法。
  3. 設定按鈕動作,以使用 rowName_Add 方法。
  4. 執行模型並按一下新增列按鈕。 新列會新增至表格的底部。

建立包括刪除列的表格

您可以建立使用按鈕、鏈結或勾選框來刪除列的表格。

  1. 將下列建置器新增至模型。
    • 頁面
    • 主要動作清單 (載入頁面)
    • 要用作資料來源的「變數」、「SQL 呼叫」或某些其他建置器
    • 要建立「資料」之 UI 的「資料頁」(將此項設為「資料輸入」)
    • 資料直欄修飾元
  2. 使用下列值配置「資料直欄」修飾元:
    • 刪除直欄樣式 = 鏈結 (它也可以為按鈕勾選框)。
    • 刪除鏈結文字 = 刪除列 (此處可以使用想要的任何文字)。
    • 刪除方法類型 = (當您需要撰寫自己的刪除程式碼以對程序進行更多控制時,如當您需要同時從資料庫刪除時,可使用其他選項)。
  3. 執行模型。 畫面上會顯示表格,其中最後一個直欄包含可用於刪除列的鏈結。 這些列將不但會從表格中移除,也會從「資料頁」使用的 XML 變數中移除。

新增直欄至表格

您可以使用「資料直欄修飾元」建置器,來將直欄新增至模型中的表格。

  1. 在「資料直欄」修飾元中,於新增直欄輸入中輸入新直欄的名稱。 以逗點分隔名稱。 這會將直欄新增至「資料直欄」修飾元中的表格,並容許您配置直欄。 然而,在您提供資料之前,這些直欄均為空白。 除「資料頁」使用的資料來源之外,您可能還需要其他資料來源。 此資料來源可以是其他變數、其他 SQL 呼叫或某些其他來源。
  2. 您還需要選取其他建置器以顯示其他資料。 這可以是任何頁面控制項。
  3. 如果「資料頁」建置器使用的變數包含 20 列資料,請建立另一個變數,讓該變數同樣包含 20 個列,且其中的每個列都有新的直欄名稱。
  4. 新增您的「頁面控制項」建置器。 這可以是文字輸入、文字建置器或您要用於顯示資料的任何其他控制項。
  5. 配置控制項,以使用透過「資料直欄」修飾元新增額外直欄時所建立的新頁面位置。
  6. 將控制項的來源資料設為第二個變數,並使用迴圈計數器作為變數的索引。 例如,如果有一個名為 Shoes 的變數與下列內容類似:
    <top>
    <shoe>
    <size>5</size>
    <color>red</color>
    </shoe>
    <shoe>
    <size>6</size>
    <color>green</color>
    </shoe>
    <shoe>
    <size>7</size>
    <color>blue</color>
    </shoe>
    </top>
  7. 請使用參照,如 ${Variables/Shoes/top/shoe[myRowLoopVar]/size},其中 "myRow" 是「資料頁」變數的列名稱,而 "myRowLoopVar" 是針對「資料頁」變數產生的計數器名稱。
在「資料頁」中,依照重複邏輯新增每個列的控制項後,將會存取資料中的相符列。

將資料從其他來源新增至資料頁操作的表格

您可以藉由將具名標籤新增至表格,來針對表格顯示其他資料。

  1. 在表格的 HTML 中,併入其他直欄的 <td /> 元素。 例如:
    <table name="customers">
    <tr><th>Name</th><th>ID</th></tr>
    <tr name="customer">
    <td><span name="name"></span></td>
    <td><span name="id"></span></td>
    <td><span name="email"></span></td>
    </tr>
    </table>
  2. 新增變數或 XML 資料的某些其他來源,其中包含資料中每位客戶的電子郵件位址。 例如:
    <emailAddresses>
    <emailAddress>tfrid@acme.com</emailAddress>
    <emailAddress>lhammond@acme.com</emailAddress>
    <emailAddress>hdolan@acme.com</emailAddress>
    <emailAddress>jdoe@acme.com</emailAddress>
    </emailAddresses>
  3. 將建置器呼叫新增至模型,以顯示直欄中的其他資料。 使用由「資料頁」新增至 WebApp 的迴圈變數,指定要顯示之電子郵件元素的索引。 例如,針對「文字」建置器呼叫,指定下列間接參照來顯示表格中現行客戶列的電子郵件位址:
    ${Variables/email/emailAddresses/emailAddress[${Variables/customerCounterVar}]}

變更專案的佈景主題內容

您可以變更專案的預設佈景主題內容。

您可以執行下列其中一個程序。

編輯現行預設佈景主題檔

  1. 開啟專案的預設佈景主題檔。
  2. 變更想要內容的值。
  3. 儲存並關閉檔案。

延伸現行預設佈景主題檔

  1. 建立延伸現有佈景主題的新檔案。

    若要延伸佈景主題,請將 extends 屬性新增到 .uitheme XML 檔中的「佈景主題」元素。

  2. 針對要變更的內容,在新檔案中新增內容項目,並設定該內容的值,使其不同於現有的佈景主題。
  3. 將佈景主題檔放置在 WEB-INF/factory/themes 資料夾之外,將您的內容與產品提供的內容分隔開。
  4. 將專案的 bowstreet.themeFile 內容設為指向新的佈景主題檔。

在下一次重新產生時,便會使用新的值。

佈景主題及使用者介面控制項

您可以使用佈景主題來指定及控制 Web 應用程式中的使用者介面 (UI) 外觀。

佈景主題是樣式資訊的集合,可用來驅動在您模型中提供應用程式使用者介面的建置器輸入。 此資訊包括但不限於 HTML 範本、樣式表 (CSS)、基本頁面、強調顯示樣式以及分頁樣式。

與佈景主題相關聯的使用者介面相關建置器輸入,內含於具有 .uitheme 副檔名的範例 XML 檔中。 IBM WebSphere Portlet Factory 提供的佈景主題儲存在 WEB-INF\factory\themes 資料夾中。 除了預設的專案佈景主題之外,還提供 wpfbase.uithemegreen.uithemeblue.uitheme 檔。 下列程式碼顯示 blue.uitheme 中的字行。
<Theme extends="/WEB-INF/factory/themes/">
    
<DataPage_StyleSheetOverride>/factory/html_templates/gridtable_blue.css</DataPage_StyleSheetOverride>

<ViewAndForm_ViewPageStyleSheetOverride>/factory/html_templates/gridtable_blue.css</ViewAndForm_ViewPageStyleSheetOverride>

<ViewAndForm_HighlighterBackground>#60A1EA</ViewAndForm_HighlighterBackground>
<ViewAndForm_HighlighterForeground>#FFFFFF</ViewAndForm_HighlighterForeground>

<InputForm_StyleSheetOverride>/factory/html_templates/gridtable_blue.css</InputForm_StyleSheetOverride>

<PagingLinks_BasePage>/factory/pages/paging/data_paging_links_blue.html</PagingLinks_BasePage>
.......
   
</Theme>

專案層次佈景主題支援

專案內的佈景主題支援由單一內容設定所定義。 預設的 WebSphere Portlet Factory 佈景主題可套用在專案的建置器及模型中。 在 WEB-INF\config\ 中,cluster.properties 檔的 bowstreet.themeFile 內容中會指定預設的佈景主題。 若要指定不同的預設佈景主題,請將類似於下列內容的字行放置在您專案的 override.properties 檔中,並指示不同的 .uitheme 檔。
bowstreet.themeFile=/WEB-INF/factory/themes/blue.uitheme
在下列建置器中設定使用佈景主題輸入,便可啟用佈景主題支援。
  • 資料頁
  • 輸入表單
  • 視圖及表單
在這些建置器中啟用使用佈景主題輸入之後,便會從佈景主題中的值,而非從建置器中所指定的輸入,提取要使用的基本頁面、HTML 範本及樣式表。 這樣的安排可讓您集中變更應用程式的外觀,而不需編輯每一個建置器。

模型佈景主題支援

在單一模型中,只要併入「佈景主題」建置器,便可置換所使用的佈景主題。 「佈景主題」建置器會置換專案佈景主題 (如果已指定的話),或者可讓您置換某些建置器的個別佈景主題驅動輸入。 「佈景主題」建置器也可讓您建立專屬的佈景主題檔。

建置器輸入佈景主題支援

對於「資料頁」、「輸入表單」以及「視圖及表單」建置器以外的使用者介面相關建置器,您可以使用您建立之佈景主題內容資料的間接參照。 對於個別的建置器輸入,您可以在佈景主題檔中定義元素及相關值,並在相關的建置器輸入中參照該定義。 例如,對於按鈕影像,在佈景主題檔中定義指定影像檔路徑的元素,並在相關的建置器輸入中使用間接參照,以存取相關的內容資料。 使用此安排,您可以在某處定義單一類型的輸入,然後在多個建置器中參照該輸入。

樣式表判定

WebSphere Portlet Factory 所提供的 HTML 範本不會直接參照要使用的樣式表,但是會提供樣式表提示 (StyleSheetHint)。 在判定要於 Web 應用程式中套用的樣式表時,會使用下列優先順序。
  • 建置器輸入

    如果「資料頁」等使用者介面相關建置器具有針對樣式表置換輸入指定的值,則會使用該樣式表。

  • 佈景主題檔

    如果未指定任何樣式表置換輸入,且使用中的佈景主題具有特定建置器的 CSS 定義,則會使用該 CSS。

  • 樣式表提示

    如果未指定任何樣式表置換輸入,且未指定佈景主題檔值,則相關 HTML 範本中的提示會判定使用的 CSS 檔。

不同 Portlet 中的佈景主題及樣式表

如果您想要在相同入口網站網頁上的不同 Portlet 中,使用不同的佈景主題,請確保您的佈景主題使用唯一的樣式表類別名稱,以避免發生衝突。 若要確保在不同 Portlet 中的唯一性,請變更 HTML 範本檔中以及對應樣式表中的所有類別樣式名稱。 例如,您無法在位於相同入口網站網頁上的不同 Portlet 中,使用兩個所提供的佈景主題 (blue.uithemegreen.uitheme 檔)。 這兩個佈景主題共用一般 HTML 範本,因此使用相同的樣式表類別名稱,而這會導致衝突。

可能必須針對其他基本頁面以及樣式表來變更這些類別樣式名稱。

按鈕樣式的佈景主題控制項

您可以在 Web 應用程式中,套用分頁建置器使用的按鈕樣式。 .uitheme 檔可以有多個以 Button_ActionRole_ 為開頭的元素,例如,Button_ActionRole_Submit。 這些元素會指定 CSS 類別的名稱。 您可以使用這些元素來套用不同的按鈕樣式。 預設角色為 Default。 blue.uitheme 檔具有一個角色類別:Button_ActionRole_Default = wpfBlueButton

建立佈景主題檔

您可以建立佈景主題檔,為您的應用程式提供專屬的自訂外觀。

尋找要從其開始的現有佈景主題檔是開始的好方法。

  1. 以下列其中一種方式建立新的檔案。
    • 複製現有的佈景主題檔,為其命名新名稱。

      例如,以 blue.uitheme 檔開始,將其命名為 red.uitheme

    • 在「佈景主題」建置器中,指定佈景主題的輸入,然後按一下建立佈景主題檔按鈕。
  2. 選擇性的: 如果您複製的現有佈景主題檔會延伸另一個佈景主題檔,則也請複製該基本佈景主題檔。
  3. 視需要建立新的 HTML 範本、樣式表及基本頁面。
    註: 如果您計劃在相同入口網站網頁上的不同 Portlet 中,使用不同的佈景主題,請確保您的佈景主題使用唯一的樣式表類別名稱。 變更 HTML 範本檔中以及對應樣式表中的所有類別樣式名稱。 針對其他基本頁面及樣式表執行相同動作。
  4. 在文字編輯器中開啟新的佈景主題檔,將內容值修改成指向您需要使用的新資源。
    例如,針對「視圖及表單」建置器,將 gridtable_blue.css 檔的參照變更為 gridtable_green.css 檔。
    <ViewAndForm_ViewPageStyleSheetOverride>
    /factory/html_templates/gridtable_red.css
    </ViewAndForm_ViewPageStyleSheetOverride>
  5. bowstreet.themeFile 內容設為指向新的佈景主題檔。

設定廣域佈景主題

您可以設定單一內容,來指定要用於專案內的佈景主題檔。

由內容設定的佈景主題檔會讓佈景主題可供專案中的每一個模型使用。 cluster.properties 檔中的 bowstreet.themeFile 內容會控制佈景主題設定。

如下所示變更專案的廣域佈景主題:

  1. \WEB-INF\config 資料夾中,開啟 override.properties 檔。

    如果該檔案不存在,則請建立一個。

  2. override.properties 檔中,搜尋 bowstreet.themeFile 字串。
  3. 如果該字串不存在,請輸入類似於下列內容的字行。
    bowstreet.themeFile=/WEB-INF/proj_files/proj.uitheme

    如果該字串存在,請將內容的值變更為指向新的佈景主題。

    您使用的佈景主題檔必須位於 factory 資料夾之外。 這個動作可讓您的專案內容與產品提供的檔案分隔開。

  4. 儲存並關閉檔案。

佈景主題可供專案中的每一個模型使用。 相關建置器輸入的預設值都取自專案佈景主題。

使用資料服務

IBM WebSphere Portlet Factory 的「服務導向架構 (SOA)」定義存取後端系統資料及服務的服務提供者模型。

SOA 還定義提供前端系統 Web 使用者介面的服務消費者或呈現模型。 WebSphere Portlet Factory 會自動化這些層及啟用各層間鬆散連結所需之構件的產生程序。

完全將各層獨立與一組 SOA 特定的 WebSphere Portlet Factory 特性結合一起,可讓您切斷與後端存取 UI 實作及測試的連結,並簡化 SOA 開發及發佈。

WebSphere Portlet Factory 對「服務導向架構」之支援特性的目標如下:

  • 在實作及發佈時,提供呈現層與服務層之間的獨立性及彈性。
  • 透過提升自動化程度來加速 SOA 應用程式開發,包括產生適當的服務測試頁面。
  • 簡化常用服務建立實務 (SQL、包裝的應用程式、WSDL/SOAP),包括不再需要實作使用者介面 UI (呈現層) 期間的後端系統存取。
  • 支援正式介面,以加速建立替代服務實作,來替代後端介面或提供備份服務。

使用資料服務

IBM WebSphere Portlet Factory 提供服務種類的建置器,可讓您用來建立、測試、使用及記載資料服務。

服務建置器會根據各種資料整合建置器 (例如,「SQL 呼叫」、「SAP 函數呼叫」、「Domino 資料存取」),來從後端資料庫存取資料。

新增自訂輸入或結果處理程序至作業

若要執行資料的其他操作或驗證,可以在作業執行期間呼叫 Java 程式碼。

例如,您可能需要轉換後端服務使用的日期欄位格式,也可能想要對服務作業的空白輸入進行特殊處理。 使用「服務作業」建置器的其他處理輸入,來完成這兩個作業。

執行期間您可以在下列時機呼叫處理程序:

前置執行
在呼叫所呼叫的動作之前立即執行
後置執行
在傳回服務作業結果之前立即執行。

在每種情況下,您都可以藉由發動事件或者呼叫動作來啟動處理程序。 下面是使用事件的方式:

呼叫兩個事件中的一個,來起始處理程序:operationnamePreExecuteoperationnamePostExecute。 每個事件都會採用兩個 IXml 引數。 PreExecute 事件引數為 operationInputs,它會保留傳遞給作業的輸入,以及 calledActionInputs,它會在執行輸入欄位值表格中指定的任何轉換後,保留所呼叫之動作的輸入。 PostExecute 引數為 calledActionResults,它會保留所呼叫動作的結果,以及 operationResults,它會在執行結果欄位值表格中指定的任何轉換後,保留作業的結果。

註: 該 SimpleServiceProvider 範例模型提供其他前置執行處理的範例。 它會檢查輸入欄位是否為空值,並將其變更為 "%",以用作 SQL 陳述式中的萬用字元。

使用服務對映登錄檔案

使用「服務導向架構 (SOA)」方式來建置資料驅動的應用程式時,其中一個最大的好處就是:資料服務程式碼與使用該資料的應用程式是完全分開的。

這種分隔形式容許將「服務提供者」模型交換成不同的模型。 使用「服務對映登錄」在服務提供者實作之間切換,而無需編輯任何消費者模型。 例如,自動使用服務的 Stub 實作。 您可以使用下列任一方法,來完成服務提供者的這種交換。

  • 在應用程式(服務消費者)模型中,手動變更「服務消費者」建置器呼叫中的「服務提供者」模型參照。
  • 在應用程式模型中,針對「服務消費者」建置器呼叫中的「服務提供者」參照進行設定檔作業,然後透過各種設定檔套用各種值,以套用正確的「服務提供者」模型。
  • 宣告選擇及對映規則,以交換「服務對映登錄」檔案中的「服務提供者」模型。

使用「服務對映登錄」檔案,要比以手動或設定檔方式變更「服務消費者」建置器呼叫中的「服務提供者」參照,更有特別的優勢。

  • 「服務對映登錄」檔案可以在執行時期及重新產生時期變更「服務提供者」,而其他方法僅適用於重新產生時期。
  • 您可以輕鬆地配置「服務對映登錄」檔案,來影響給定 Web 應用程式專案中許多 (甚至全部)「服務提供者」及「服務消費者」的關係。
  • 您可以配置「服務對映登錄」檔案,根據簡單條件 (例如,與「服務提供者」模型的檔名相符的型樣,或者「服務消費者」建置器呼叫中宣告的對映參數值) 來交換「服務提供者」。

在「服務對映登錄」檔案中,有數個可供使用的主要建構。 這些建構分為「選取器」及「對映」種類。 「選取器」提供「服務提供者」應該與其他「服務提供者」進行交換的條件。 「對映」提供取代「服務提供者」模型的名稱。

登錄對映檔案對映

對映的定義很容易理解。

UseService
使用具名「服務提供者」模型。 如果具名「服務提供者」不存在,則「服務消費者」模型會產生錯誤。
UseStub
使用「服務提供者」模型之「服務定義」建置器呼叫中參照的 Stub 模型。 如果該建置器呼叫中沒有參照,則會使用原始「服務提供者」。 如果存在參照,但是參照的 Stub 模型不存在,則「服務消費者」模型會產生錯誤。
ModifyName
使用模型 ID 符合套用已宣告的型樣及取代屬性所產生之模型 ID 的「服務提供者」。 例如,在下列建構中,選取器會使用型樣相符來識別應該交換的「服務提供者」模型,而 <ModifyName> 對映則會宣告取代名稱。 在此情況下,如果試圖使用模型 ID 中包含子字串 _testing 的「服務提供者」,則會導致改用具有子字串 _production 的「服務提供者」。 services/myDataServices_testing 會由 services/myDataServices_production 所取代
<ForServiceMatching pattern="_testing">
<ModifyName pattern="_testing" replacement="_production" />
</ForServiceMatching> 

在下列檔案中,您可以找到所容許之建構的更多範例:WEB-INF\config\service_mappings\mappings.xml.example

重新導向服務提供者參照

本質上,「服務對映登錄」檔案的運作方式是,首先識別在何種條件下需要將「服務提供者」參照取代或交換為其他「服務提供者」參照,然後提供取代「服務提供者」的模型 ID。

例如,「服務消費者」建置器呼叫可能會參照名為 services\myDataServices.model 的「服務提供者」模型,其位於 Web 應用程式專案的 WEB-INF\models 資料夾中。 名為 services\myDataServices_stub.model 的第二個「服務提供者」模型,可能也存在於該專案中,並由「服務提供者」模型進行參照,它是透過第一個「服務提供者」模型之「服務定義」建置器呼叫中的 Stub 產生特性來建置為 Stub。

為了開發人員的方便起見,您可以配置「服務對映登錄」檔案,以便在重新產生時期,一律使用 Stub 提供者,而在執行時期,使用實際的「服務提供者」(視現用資料而定)。 若要設定此配置,下列 XML 指示必須存在於「XML 服務對映登錄」檔案中,該檔案儲存在 Web 應用程式專案的 WEB-INF\config\service_mappings 資料夾中。

<ForService name="services/myDataServices" when="regen-time"> 
<UseStub /> 
</ForService>  

在此情況下,「服務消費者」建置器會將 services/myDataServices 模型參照為「服務提供者」。 在重新產生時期, WebSphere Portlet Factory 會知道如何換出 myDataServices「服務提供者」模型,並使用 myDataServices 模型之「服務定義」建置器呼叫中參照的 Stub 模型。

登錄對映檔案選取器

「選取器」可評估為 true 或 false。 如果存在將選取器的準則評估為 true 的條件,則會使用在選取器內部宣告的對映。

請考量此範例:
<ForService name="services/myDataServices" when="regen-time">
<UseStub />
</ForService>  

ForService 選取器接受稱為 name 的屬性。 如果 name 屬性的值符合「服務消費者」模型中參照之「服務提供者」的模型 ID,則會套用對映。 模型 ID 衍生自「服務提供者」模型的完整路徑及檔名。 「服務提供者」模型的完整路徑及檔名看起來類似下列內容:WEB-INF\models\subfolders\...\filename.model。 模型 ID 會省略開頭的 WEB-INF\models\,以及檔名結尾處的 .model。 它還會將斜線反轉過來。 因此,位於 WEB-INF\models\services\myDataServices.model 之模型的模型 ID 為:services/myDataServices

另外,還有其他選取器可以在「服務對映登錄」檔案中使用。

ForAllServices
除非提供其他屬性,否則一律評估為 true。 例如:
<ForAllServices when="regen-time">
<UseStub />
</ForAllServices>
在重新產生時期評估為 true,而在執行時期評估為 false。
ForServiceMatching
使用正規表示式 (RegEx) 型樣相符值 (位於名為 pattern 的屬性中)。 模型 ID 符合型樣的「服務提供者」,會由「選取器」對映部分中宣告的「服務提供者」所取代。 例如:
<ForServiceMatching pattern="_testing">
<ModifyName pattern="_testing" replacement="_production" />
</ForServiceMatching> 

假設「服務提供者」模型的命名慣例包括子字串 _testing_production,則此建構會交換模型 ID 包含子字串 _testing 的所有「服務提供者」,並使用子字串 _production 進行取代。 實際的模型並不會變更,但是如果試圖使用 _testing「服務提供者」,則會導致改用相對應的 _production「服務提供者」。

IfParameterEquals
視應用程式模型之「服務消費者」建置器呼叫中宣告的對映參數而定。 此建構會指定當「服務消費者」模型中存在某些名稱/值配對時,要使用哪個「服務提供者」。 例如,下面建構所說明的嘗試是使用 services/myDataServices 提供者模型、檢查並查看是否有稱為 mode 的對映參數且其值為 testing 或 production,以及相應地交換「服務提供者」。 如果不存在對映參數,或者參數值不符合任何上述值,則應該使用 services/myDataServices「服務提供者」模型。
<ForService name="services/myDataServices">
<IfParameterEquals name="mode" value="testing">
<UseService name="services/myDataServices_testing" />
</IfParameterEquals>
<IfParameterEquals name="mode" value="production">
<UseService name="services/myDataServices_production" />
</IfParameterEquals>
<UseService name="services/myDataServices" />
</ForService> 

轉換服務傳回的資料

您可以使用此「服務作業」建置器,將作業輸入及結果轉換為不同的綱目結構。

若要執行此動作,請確定屬意的綱目可在 WebApp 中使用。 此綱目可以使用建置器 (例如,「綱目產生器」或「簡式綱目產生器」) 來建立,您也可以使用 WebApp 中,由任何其他建置器建立的任何綱目。
註: 當您透過「服務消費者」建置器呼叫服務作業時,該作業的結果 IXml 資料會參照在提供者「服務作業」建置器中指定的同一 IXml 物件。 它並不是資料的個別副本。 這表示如果提供者程式碼保留對 IXml 物件的參照,在「消費者」模型中修改結果資料後,則會同時變更兩個位置中的資料。
轉換輸入
在「輸入結構處理」欄位中,選取指定輸入綱目。 在輸入綱目欄位中,選取綱目類型。 然後,針對輸入欄位對映選取指定輸入值。 這會提供輸入欄位值表格。

在名稱直欄中會列出所呼叫作業的輸入欄位。 您可以在值直欄中指定輸入的值。 如果開啟值挑選器,則作業輸入的所有欄位都會列出在引數區段中。 如果兩個結構的欄位名稱不同時,您就可以輕鬆地進行欄位對映。 您也可以指定其他值,來提供給所呼叫的動作。 例如,您的某些欄位中的值可能是寫在程式中的,或來自變數的值。

結果轉換
結果轉換與輸入轉換都是使用相同的方法。 在結果結構處理欄位中,選取指定結果綱目。 在結果綱目欄位中,選取綱目類型。 然後,針對輸入欄位對映選取指定結果值。 這會提供結果欄位值表格。

在名稱直欄中會列出新作業的結果欄位。 您可以在值直欄中指定結果的值。 如果開啟值挑選器,則所呼叫之動作結果的所有欄位都將列在結果區段中。 如果兩個結構的欄位名稱不同時,您就可以輕鬆地進行欄位對映。 您也可以指定其他值,來提供給結果欄位。 例如,您可以從 MethodCall 區段挑選,來呼叫方法,以計算欄位值。

在服務提供者模型中使用轉換建置器

轉換建置器系列提供多種方法,可讓您對服務提供者模型中分送的資料進行操作。

一般而言,您可以將轉換建置器新增至服務提供者模型,將其與現有的資料服務相關聯,新增「服務作業」建置器以進行轉換作業,以及將轉換作業顯示為提供者模型中的作業。已新增的轉換作業是您從服務消費者呼叫的作業。

因為每一個轉換建置器本身都會建立新的資料服務作業,並覆蓋目標作業,所以您可以使用此方式將多個轉換建置器鏈結在一起。例如,使用此鏈結,您可以呼叫單一服務作業,讓來自資料服務作業的結果既由「轉換過濾器」建置器進行過濾,又由「轉換排序」建置器進行排序。

您可以使用下列方法,對服務提供者模型中提供的資料進行操作。
  • 轉換資料服務作業結果。
  • 轉換資料服務作業輸入。
轉換資料服務作業結果

您可以使用一系列轉換建置器,修改現有資料服務作業的結果。

下列步驟使用「SQL 呼叫」建置器,作為模型中資料服務的範例。該程序適用於任何資料服務提供者建置器。

  1. 在提供者模型中建立資料服務。

    例如,新增「SQL 呼叫」建置器並對其進行配置。

  2. 新增「轉換對映」建置器,以遵循資料服務建置器。
    1. 在「轉換對映」建置器的將轉換套用至輸入中,指定目標作業結果
    2. 目標作業輸入中,指定下列作業。
      DataServices/SQLCall/execute
  3. 新增「服務作業」建置器,以遵循「轉換對映」建置器,並在要呼叫的動作輸入中,指定下列作業。
    DataServices/transform/map

當呼叫服務作業時,該作業會呼叫轉換對映。轉換對映會呼叫 SQL 呼叫,對 SQL 呼叫的結果進行操作,並傳回已轉換的資料。服務作業會傳回已轉換的資料,並使用來自轉換對映的結果綱目。

註: 如果您使用「Web 服務多重作業」建置器,請針對需要轉換的每一個作業,如所述將「轉換對映」建置器及「服務作業」建置器新增至模型。您必須忽略服務提供者中非轉換的作業(由「Web 服務多重作業」建置器直接提供的那些作業)。為了避免衝突,它會協助停用「Web 服務多重作業」建置器中的建立服務定義輸入(勾選框)。然後,針對想要顯示的每一個作業,新增自己的「服務定義」建置器及「服務作業」建置器。這些步驟可避免列出服務中非轉換版本的作業。
轉換資料服務作業輸入

您可以使用一系列轉換建置器,修改提供給現有資料服務作業的輸入。

下列步驟使用「Web 服務呼叫」建置器,作為模型中資料服務的範例。該程序適用於任何資料服務提供者建置器。

  1. 在提供者模型中建立資料服務。

    例如,新增「Web 服務呼叫」建置器並對其進行配置。

  2. 新增「轉換對映」建置器,以遵循資料服務建置器。
    1. 在「轉換對映」建置器的將轉換套用至輸入中,指定目標作業輸入
    2. 目標作業輸入中,指定下列作業。
      DataServices/WebServiceCall/execute
  3. 新增「服務作業」建置器,以遵循「轉換對映」建置器,並在要呼叫的動作輸入中,指定下列作業。
    DataServices/transform/map

當呼叫服務作業時,該作業會呼叫轉換對映。轉換對映會轉換提供給服務作業的輸入。輸入會轉換為「Web 服務呼叫」所預期的輸入結構。轉換對映會呼叫「Web 服務呼叫」,並向其傳遞已轉換的輸入資料。此時會傳回來自「Web 服務呼叫」作業的結果。服務作業會轉換提供給「Web 服務呼叫」的輸入,並傳回來自「Web 服務呼叫」未修改的結果資料。

註: 如果您使用「Web 服務多重作業」建置器,請針對需要轉換的每一個作業,如所述將「轉換對映」建置器及「服務作業」建置器新增至模型。您必須忽略服務提供者中非轉換的作業(由「Web 服務多重作業」建置器直接提供的那些作業)。為了避免衝突,它會協助停用「Web 服務多重作業」建置器中的建立服務定義輸入(勾選框)。然後,針對想要顯示的每一個作業,新增自己的「服務定義」建置器及「服務作業」建置器。這些步驟可避免列出服務中非轉換版本的作業。

在作業中使用動作清單、方法或 LJO 方法

請遵循下列步驟,以在作業中使用動作清單、方法或 LJO 方法。

  1. 將「服務定義」建置器置於模型中,以保留要新增的作業。 該模型還必須包含您想要使用的屬意動作清單、方法或 LJO。 「服務作業」建置器支援下列幾種方法引數及回覆值:
    方法引數
    引數可以是空值、單一 IXml 引數或多個簡式類型 (String、int/Integer、double/Double 等)。例如,您不能使用多個 IXml 引數或任何複式 Java 物件引數,或者 IXml 與簡式類型引數的組合。
    回覆值
    回覆值可以是 void (無結果) 或 IXml。
    註: 針對 XML 輸入或結果,您的 WebApp 中必須有一個綱目定義所需要的結構。 綱目可以使用建置器 (例如,「綱目產生器」或「簡式綱目產生器」) 來建立,您也可以使用 WebApp 中,由任何其他建置器建立的任何綱目。
  2. 將「服務作業」建置器新增至模型,並針對作業名稱,輸入要用於作業的名稱。 對於要呼叫的動作,請在方法之下查看,並選取要呼叫的動作。
  3. 接下來,配置作業的輸入。 您會有三種可能的選擇:
    方法沒有引數
    針對輸入結構處理,選取無輸入
    方法具有單一 IXml 引數
    輸入綱目欄位中,提供資料的綱目類型。 您可以參照 WebApp 中的任何綱目。
    方法具有多個簡式引數
    選取使用已呼叫動作的結構,這會從引數產生綱目,或者選取指定輸入綱目,這會讓您將新作業輸入對映至所呼叫的方法輸入。
  4. 如果作業有結果,請在結果綱目欄位中指定綱目結構。 您可以參照 WebApp 中的任何綱目。

基於整合建置器建立作業

以下步驟說明如何基於整合建置器建立作業。

  1. 在模型中,新增一個「服務定義」建置器,其可識別保留作業的服務。
  2. 在模型中,放置一個整合建置器 (例如,「SAP 函數呼叫」、「SQL 呼叫」、「Web 服務呼叫」或「Domino 視圖」),其可以順利存取後端資料。

    如需設定整合服務的相關資訊,請參閱下列其中一本入門手冊。

  3. 將「服務作業」建置器新增至模型,並針對作業名稱輸入,輸入要用於作業的名稱。

    一般的名稱可能會類似於 findEmployees

  4. 針對「服務作業」建置器中的要呼叫的動作輸入,在「資料服務」下查看後端作業。

    例如,對於「SQL 呼叫」,這可能類似於 employeeSearch/execute

    您可以配置作業的輸入 (如果有的話) 及結果。 若要使用與呼叫之後端作業相同的輸入及結果結構,請針對輸入及結果選取使用已呼叫動作的結構,並將輸入欄位對映結果欄位對映輸入選項保留為自動

    註: 使用資料服務及方法時,必須使用不同的技術。

    例如,IBM WebSphere Portlet Factory 整合建置器會建立資料服務作業及方法,來支援其在 WebApp 中的作業。 在要呼叫的動作輸入中,您可以選取資料服務方法。 不過,一般的規則是應該選取資料服務作業,而非相等的方法。 當您從資料服務選取作業時,「服務作業」建置器就可以存取作業之輸入及輸出參數的相關資訊,包括綱目類型資訊。 當您從方法選取時,必須指定 XML 輸入或結果的綱目類型。

    註: 僅支援具有下列引數類型的方法。
    • 無引數
    • 單一 IXML 引數
    • 一個以上的簡式引數 (String、int/Integer、Double、Boolean 等)

    因此,舉例來說,您無法使用採用 Bean 引數或採用 IXML 引數及一個以上簡式引數的方法。

資料服務文件

請遵循下列步驟,以顯示所選服務、其作業及參數的相關資訊。

  1. 將「服務文件」建置器呼叫新增至服務提供者模型。 此模型必須包含定義資料服務的「服務定義」建置器及「服務作業」建置器。
  2. 在「服務文件」建置器中,對模型選擇選取此模型,對報告類型選取實作的服務
  3. 執行模型,以產生所選服務、其作業及參數資訊的頁面。

以斷線模式從後端資料工作

請遵循下列步驟,以斷線模式從後端資料工作。

  1. 將「服務 Stub」建置器呼叫新增至要測試的模型。 此模型必須包含定義資料服務的「服務定義」建置器及「服務作業」建置器。
  2. 在「服務 Stub」建置器中,選擇公用資料服務名稱。
    1. 為 Stub 服務模型選取新模型名稱。
    2. 儲存建置器呼叫。
  3. 新增「服務測試」建置器呼叫並提供任何必要的預設輸入。 儲存「服務測試」建置器呼叫及模型。
  4. 重新整理專案。 您應會看到剛剛建立的模型,此模型會實作原始服務的完整功能測試版本。

使用 Web 服務

IBM WebSphere Portlet Factory Designer 可讓您呼叫 Web 服務。

您可以透過將「Web 服務呼叫」建置器新增至您的模型,來存取 Web 服務,並可以使用其他建置器呼叫,來顯示服務所傳回的資料或與其互動。 下列是存取 Web 服務的一般步驟。

  1. 尋找 Web 服務的 URL。
  2. 將「Web 服務呼叫」建置器呼叫新增至模型。
  3. 啟動服務呼叫。
  4. 存取服務的輸出。

您可以顯現模型中一個以上的方法,作為由 WSDL 文件說明的 SOAP 服務。 在「服務定義」建置器中,啟用產生 WSDL 輸入。 若要取得 WSDL 文件的 URL,請啟用測試支援並執行模型。 測試索引頁面含有 WSDL URL 的鏈結。

您可以透過模型建立 Web 服務。 針對模型中您要顯現為 Web 服務的每個方法,使用「Web 服務啟用」建置器。

支援下列 Web 服務技術。
  • Web 服務說明語言 (WSDL) 1.1
  • 簡易物件存取通訊協定 (SOAP) 1.1
  • Web 服務交互作業能力組織 (WS-I) 基本設定檔建議

將 Web 服務呼叫新增至模型

找到 Web 服務之後,請將「Web 服務呼叫」建置器新增至模型。

若為 HTTP 服務 (Get 或 Post),請將「REST 服務呼叫」建置器新增至模型。

如果您呼叫的服務以 XML 結構作為輸入,則「Web 服務呼叫」建置器會將綱目新增至模型,以說明該 XML 結構。

若要新增 Web 服務呼叫,請執行下列步驟:

  1. 取得服務的 WSDL 文件 URL 後,請在 IBM WebSphere Portlet Factory Designer 中開啟模型,並新增「Web 服務呼叫」建置器。
  2. 在服務呼叫的建置器呼叫編輯器中,指定服務的 WSDL 文件 URL。

    建置器呼叫編輯器就會依據 WSDL 文件中包含的資訊,顯示輸入欄位。

  3. 記下針對任何 XML 輸入指定的類型。

    將所建立的輸入變數設為此類型。

  4. 請在服務中選取一個方法,並指定該方法的輸入值。

    「Web 服務呼叫」建置器還可讓您指定任何必要的基本權限。 您也可以配置服務呼叫的其他方面,例如記載輸入及輸出,以及對建置器呼叫本身的個別輸入建立設定檔。

  5. 將變數新增至模型。

    將變數設為針對服務之 XML 輸入指定的類型。

  6. 當您選取透過綱目定義的複式類型時,「變數」建置器的建置器呼叫編輯器會顯示建立範例資料按鈕。 按一下此按鈕,可以預設服務輸入變數。
  7. 現在變數中已具有範例資料,您可以使用模型中的方法,或在「變數」建置器呼叫編輯器中編輯 XML,來設定個別的元素值。

現在,您可以呼叫服務。

模型中的 Web 服務呼叫

取得服務 WSDL 文件 URL 後,您可以將服務呼叫新增至 IBM WebSphere Portlet Factory Designer 中的模型。

在「Web 服務呼叫」建置器的建置器呼叫編輯器中,指定服務的 WSDL 文件 URL。 建置器呼叫編輯器就會依據 WSDL 文件中包含的資訊,顯示輸入欄位。 請在服務中選取一個方法,並指定該方法的輸入值。

「Web 服務呼叫」建置器還可讓您指定任何必要的基本權限,並配置服務呼叫的其他方面,例如記載輸入及輸出,以及對建置器呼叫本身的個別輸入建立設定檔。

如果模型中具有「Web 服務呼叫」建置器,您就可以透過呼叫該「Web 服務呼叫」建置器新增至模型的 serviceCallName_invoke() 方法,來呼叫指定的服務。 serviceCallName_reply 變數會儲存服務呼叫的輸出。

發佈 Web 服務

您可以藉由分送模型的 getWSDL 動作的 URL,將 Web 服務顯現給其他開發人員。

getWSDL 動作是一種特殊的模型動作,它會針對模型中啟用 Web 服務的方法傳回一份 WSDL 文件。 例如:
http://acme.com/bowstreet/webengine/servicemodels/GetCustomerInfo/Action!getWSDL

呼叫 Web 服務

使用「Web 服務呼叫」建置器將 Web 服務新增至模型之後,您就可以起始呼叫 Web 服務。

一旦您的模型中具有 Web 服務呼叫定義之後,請以下列其中一個方式呼叫指定的服務:
  • 使用「Web 服務呼叫」建置器新增至模型的 serviceCallName.invoke() 方法。 例如,若要從某一方法執行服務呼叫,請:
    webAppAccess.callMethod("ServiceCallName.invoke");
  • 將「動作清單」建置器新增至模型,並從透過按一下省略符號 [...] 按鈕而顯示的「動作選擇器」中,選取 DataServicesServiceCallName.execute

serviceCallName_reply 變數會儲存服務呼叫的輸出。 如果服務傳回 XML,則「Web 服務呼叫」建置器還會新增定義服務結果的綱目。

建立複合 Web 服務

您可以使用多種方式,建立複合 Web 服務。

  • 將一個服務的輸入設定為其他服務的輸出。
  • 將適當的服務呼叫配置為使用第一個服務的輸出作為其輸入,並建立呼叫這兩個服務的方法。

下列步驟詳細地說明了該處理程序。

  1. 確定向後續服務呼叫傳回輸入的服務。
  2. 配置將一個以上的服務之輸出用作其輸入的服務呼叫。
  3. 撰寫先呼叫輸入服務再呼叫消費者服務的封套方法。
  4. 使用「服務定義」建置器及一或多個「服務作業」建置器,來定義要針對 Web 服務啟用的作業。
  5. 在「服務定義」建置器中,設定產生 WSDL 輸入,以針對 Web 服務啟用封套方法。

關於建立 Web 服務

您可以將模型中的方法顯現為 Web 服務,來建立 Web 服務。

在您的模型中使用「服務定義」及「服務作業」建置器。「服務定義」建置器可以建立具有一或多個作業的服務。 在該建置器中,您可以讓服務可用於 WSDL 及 SOAP 的其他應用程式。如果其他模型包含「服務消費者」建置器,則可以在其他模型中呼叫「服務定義」建置器所建立的資料服務。

使用「服務作業」建置器,可以將特定服務新增至利用「服務定義」建置器建立的服務。

如果您的方法採用 XML 輸入 (複式類型的輸入),則需要建立一個綱目,來定義方法預期作為輸入接收的結構。 此綱目會併入到產生的 WSDL 文件中,並會供呼叫您的服務的其他開發人員,用來將您的服務 XML 輸入結構化。

您可以將 Web 服務顯現為管理應用程式之伺服器的送入 SOAP 要求,或本端模型中的服務呼叫。

建立複式引數及傳回類型的綱目

如果要顯現為 Web 服務的方法採用一個以上的 XML 引數,或傳回 XML 結構,則您需要建立綱目以說明引數及傳回類型的結構,然後將「綱目」建置器呼叫新增至模型,以將綱目新增至模型。

"getWSDL" 動作產生的 WSDL 文件,包括說明服務輸入及輸出所需的任何綱目。

「綱目」建置器只接受「XML 綱目 2001 XSD」,該綱目可以使用協力廠商工具 (如 "XML Spy") 來建立。 此外,「簡式綱目產生器」建置器也會從如下所示的簡式 XML 將綱目建置到模型中。

例如,如果方法採用具有下列結構的 IXml 引數:

<customers>
<customer>
<name></name>
<id></id>
</customer>
...
</customers>

則相對應的綱目為:

<?xml version="1.0" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.acme.com"
xmlns="http://www.acme.com">
<xsd:element name="customers">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="customer" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="id" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

此綱目需要開發人員呼叫此服務,來傳遞至少包含一個 <customer /> 元素的 <customers /> 結構。

關於尋找服務的 WSDL 文件

您可以在公共網站上或在公用或私密登錄中,找到要呼叫之 Web 服務的 WSDL 文件。

您可以使用相關的 WSDL 文件來配置「Web 服務呼叫」建置器,以呼叫這些 Web 服務。

xmethods.com (或 xmethods.org) 網站會不斷更新可用服務的清單。 此網站會提供呼叫網站上所列服務需要的所有資訊 (包括 WSDL 文件)。

已發佈至公開「通用描述、探索與整合 (UDDI)」通訊協定登錄的大部分服務 (例如,uddi.xml.org) 具有關聯的 WSDL 文件。 公開 UDDI 登錄也由 IBM、Microsoft 及其他公司管理。 私密 UDDI 登錄可以在您自己的組織內或事業夥伴組織內管理。

IBM WebSphere Portlet Factory 文件假設 Web 服務具有 WSDL 文件。 如果您要呼叫的 Web 服務沒有 WSDL 說明文件,則可以使用類似的說明步驟。 然而,您需要瞭解服務的輸入,以便您可以配置服務呼叫,來傳遞適當的輸入。

尋找 Web 服務

您可以透過公用或專用資源來尋找 Web 服務。

若要在 xmethods.org 上尋找服務,請執行下列步驟:

  1. 在瀏覽器中,導覽至 http://www.xmethods.org
  2. 捲動查看服務清單,再按一下您要使用的服務鏈結。
  3. 在瀏覽器顯示的資訊頁面中,複製服務 WSDL 文件 URL。 下列 WSDL 文件的 URL 用於以 .NET 實作的股票服務:

    http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl

當您取得服務 WSDL 文件的 URL 時,就可以將「Web 服務呼叫」建置器新增至模型,以便呼叫服務。

使用資料庫

IBM WebSphere Portlet Factory 提供從高階到低階的各種資料庫工具。

這些工具可讓您連接到資料庫並且與資料庫互動。 對於工具功能方面的說明如下:

關聯式資料庫新建模型精靈
引導您執行建置模型之必要步驟的精靈,該模型包含擷取、建立、更新、編輯及刪除資料庫項目所需的全部建置器。 此精靈對大部分一般資料庫作業提供最佳解決方案,還會建構 SQL 查詢並設定資料的頁面顯示畫面。
SQL 呼叫建置器
如果您需要在資料庫上執行 SQL 陳述式或儲存程序,請使用此建置器。 除了提供基本的連線功能之外,此建置器還包括資料庫瀏覽器,可協助您建構 SQL 查詢。 此建置器還提供設定,可讓您控制對傳回之結果集的格式化及轉換。
SQL 系列建置器
這些建置器提供存取及使用本端或遠端應用程式伺服器上安裝之資料庫所需的核心功能。 SQL 建置器透過應用程式伺服器上的「Java 命名和目錄介面 (JNDI)」資料來源,與資料庫互動。 應用程式伺服器會管理資料庫連線的所有層面 (例如,儲存區作業、認證或逾時)。

配置範例資料來源

提供已在配送的 IBM WebSphere Application Server Community Edition (WAS CE) 上預先配置的範例資料來源及資料庫。 您可以在專屬的 WebSphere Application Server Community Edition 上或您的 IBM WebSphere Application Server 伺服器上,配置此資料庫及資料來源。

WebSphere Application Server Community Edition (WAS CE) 上配置範例資料來源

如果和產品一起安裝 WebSphere Application Server Community Edition (WAS CE),則依預設 IBM WebSphere Portlet Factory 會自動啟用 WebSphere Application Server Community Edition (WAS CE) 範例資料來源。 一旦專案發佈至 WebSphere Application ServerCommunity Edition (WAS CE) 之後,指向 jdbc/MyDataSource 的範例資料來源便會新增至專案。 如果您因故不想要再自動新增 WebSphere Application Server Community Edition (WAS CE) 範例資料來源至您的專案,則請遵循下列步驟,以配置 WebSphere Application Server Community Edition (WAS CE) 上的範例資料來源。
  1. 從檔案系統中移除 <INSTALLROOT>\WASCE\var\derby\sample\wasce-datasource-results.txt 檔。 這會防止 WebSphere Portlet Factory 自動建立資料來源參照。
  2. 重新發佈應用程式。 如果您拒絕 WebSphere Application Server Community Edition (WAS CE) 安裝,但選擇安裝至自己現有 WebSphere Application Server Community Edition (WAS CE) 副本中,則仍然可以使用下列步驟,來新增員工範例資料庫,以及讓 IBM WebSphere Portlet Factory 針對資料來源自動配置您的專案:
    1. <INSTALLIMAGE>/config/EmployeeSampleDB.zip 解壓縮至 <WASCE_ROOT>/var/derby
    2. 從指令主控台中,變更為 <WASCE_ROOT>/var/derby/sample directory
    3. 在指令主控台中輸入:wasce-deploy-sample --user system --password manager
    4. 檢查 wasce-datasource-results.txt 確認是否已建立資料來源。
    5. 將適當的 web.xmlgeronimo-web.xml 片段新增至您的專案,該片段包含資料來源資訊。 每一個延伸資料夾中都有 Readme.txt,其會詳細說明要採取的適當步驟:
      <PROJECTROOT>WEB-INF\bin\deployment\extensions\geronimo.web\Readme.txt <PROJECTROOT>WEB-INF\bin\deployment\extensions\standalone.web\Readme.txt
      <PROJECTROOT>WEB-INF\bin\deployment\extensions\geronimo.web\Readme.txt <PROJECTROOT>WEB-INF\bin\deployment\extensions\standalone.web\Readme.txt
  3. 重新發佈應用程式。

WebSphere Application Server 上配置範例資料來源

請遵循下列步驟,在 WebSphere Application Server 上配置範例資料來源。
  1. <INSTALLIMAGE>/config/EmployeeSampleDB.zip 解壓縮至 AppServer\derby\databases 目錄中。
  2. 編輯 was-datasource.bat 檔,變更 SOAP_CONNECTOR_ADDRESS、USERNAME 及 PASSWORD 的值,以反映伺服器的值。
  3. 從指令主控台中,變更為 AppServer\derby\databases 目錄。
  4. 執行 was-datasource.bat 檔。
  5. 您不需要為了使用 WAS 上的範例資料來源而重新發佈應用程式。

建置 SQL 陳述式

您可以使用「SQL 呼叫」建置器來使用 SQL 陳述式。

「SQL 呼叫」建置器提供重新撰寫 SQL 程式碼的智慧型替代方案。 您可以使用此建置器的「資料庫瀏覽器」特性,來建置 SQL 陳述式。

  1. 開啟「SQL 呼叫」建置器編輯頁面的「資料庫瀏覽器」部分。
  2. 瀏覽資料表,並建構及產生範例 SQL 程式碼。
  3. 編輯此範例程式碼,以建立所需的確切陳述式。

SQL 建置器

SQL 建置器可用於實作資料庫作業。

這一組功能強大的建置器不僅支援 JNDI 資料庫連線功能,而且還提供可協助轉換及顯示 ResultSet 資料的綱目轉換服務。 此外,還可以對大部分 SQL 建置器進行配置,以發動資料庫相關事件。 您可以使用這些事件來控制及驅動模型動作。

SQL 建置器可實作存取資料來源的 JNDI 型方法,並支援與本端及遠端資料來源的連線

註: (IBM WebSphere Portlet Factory 依賴於應用程式伺服器來監視全部資料庫管理的所有方面,包括連線儲存區作業及驅動程式的選擇)。

SQL 建置器還支援產生資料庫相關伺服器統計資料及記載。 這些統計資料為您提供分析資料庫效能問題的方法。 記載資訊可讓您維護資料庫作業的審核追蹤,如資料庫變更及確定。 SQL 建置器包括:

SQL 呼叫
此建置器提供重新撰寫 SQL 程式碼的智慧型替代方案。 它可以將數個低階 SQL 建置器 (「SQL 資料來源」、「SQL 陳述式」、「SQL 轉換至 XML」等) 的功能封裝成單一建置器呼叫。 使用「SQL 呼叫」建置器開始與資料庫互動。 如果您需要低階 SQL 建置器的其他功能,請視需要使用它們。 資料庫瀏覽器支援使用單一表格查詢及儲存程序。 此外,您可以建立納入位置參數的選取、插入、更新及刪除陳述式。
SQL DataSource
可讓模型 (及其他 SQL 建置器) 從本端或遠端 JNDI 型資料來源取得資料庫連線。 DataSource 一般由應用程式伺服器定義及管理,並可透過作為應用程式伺服器實作一部分提供的 JNDI 伺服器使用。
SQL 陳述式
建立可供執行的「備妥」或「可呼叫」SQL 陳述式。 此建置器會管理所有 DML (資料建模語言) 及 DDL (資料定義語言) 作業。 在此建置器中,您可以撰寫 SQL 型資料庫指令,如儲存程序呼叫、插入、刪除、選取、更新、建立表格、建立索引等。
與「SQL 呼叫」建置器相比,此建置器提供更多的基本功能。 「SQL 陳述式」建置器是設計來使用可供執行的已備妥或可呼叫 SQL 陳述式。 此建置器可讓您指定位置參數的陳述式值。 您還可以對 ResultSet 及執行節流控制進行各種效能增強設定,以調整對資料庫的查詢。

轉換陳述式結果:

此建置器還提供設定,容許透過方法驅動的轉換,對直欄進行特殊處理。 例如,您可以使用此特性,將輸出參數轉換為記錄集。

除了 SQL 組合之外,「SQL 陳述式」建置器還提供方法,讓您將自訂轉換方法套用至 ResultSet 中的直欄。 這可讓您以逐欄方式,控制傳回之資料的 XML 格式。 如果 ResultSet 包含複式 JDBC 直欄類型,或您要對 ResutlSet 套用其他格式,就可能需要執行此動作。

  1. 將「SQL 轉換至 XML」建置器新增至模型,以 XML 變數的形式儲存結果。
  2. 將「SQL 交易」建置器新增至模型,指定「資料來源」、「SQL 陳述式」及「SQL 轉換」的名稱作為交易步驟。
SQL 交易
使用「SQL 交易」建置器,可以將模型中的其他 SQL 建置器鏈結在一起而建立交易序列。 編製好查詢並提供轉換資訊之後,就可以建置整個交易。 此建置器可以建立短期或長期 SQL 交易。 這樣的交易可以識別 SQL 陳述式要執行的資料來源,以及要在 ResultSet 套用的轉換。

針對資料庫執行 SQL 陳述式時,您可以追蹤模型中與陳述式相關的資料庫事件,還可以產生與陳述式執行相關的統計資料及日誌。 這些選項可讓您評定效能,並保留陳述式用途的審核追蹤。

如果 SQL 陳述式傳回資料,則您可以使用「資料頁」建置器進行顯示。

SQL 轉換至 XML
將已執行之 SQL 陳述式的結果轉換為 XML。 此建置器可以建立完整的 XML 文件或 XML 文件的分頁版本。 在後一種情況下,此輸出可以供 WebSphere Portlet Factory 的「資料分頁」建置器使用。
SQL 轉換至 XML 綱目
因執行一個以上 SQL 陳述式而產生完整的 XML 綱目。 在產生時期,此建置器建立的綱目可能會作為另一個建置器 (如資料頁建置器) 的輸入。

SQL 建置器設計為統一運作。 例如,您可以將「資料來源」建置器與「陳述式」建置器組合搭配,以在各種資料來源上執行相同的查詢。 或者,也可以將單一 XML 轉換套用至各種結果集。

伺服器統計資料及 SQL 陳述式記載
不管個別建置器輸入設定為何,所有 SQL 建置器均會啟用伺服器統計資料及 SQL 陳述式記載。 這些記載會儲存在您的專案檔中:
projectname.war\WEB-INF\logs\event.log
,並且伺服器統計資料儲存在這裡:
projectname.war\WEB-INF\logs\serverStats.txt

cluster.properties 檔案的下列內容可以置換此預設設定:bowstreet.builder.enableGlobalSqlBuilderServerStatisticsbowstreet.builder.enableGlobalSqlBuilderStatementLogging。 設為 true(預設)時,所有 SQL 建置器均會建立伺服器統計資料及診斷記載訊息。 設為 false 時,個別 SQL 建置器統計資料及記載輸入會生效。 這兩個內容是獨立的。 serverStats.txt 一律由 Factory 撰寫。 預設更新設定時間是 5 分鐘,因此您必須等一會,才能看到執行模型後,記載的任何 SQL 統計資料。

連接至資料庫

您可以使用數種方式來建立與應用程式伺服器上安裝及執行之 JNDI 資料來源的連線。

註: JNDI 資料來源必須正確安裝及配置在應用程式伺服器上,以便能夠從模型存取它。
  • 建立「關聯式資料庫」模型
  • 將「SQL 呼叫」建置器新增至現有模型
  • 將「SQL 資料來源」建置器新增至現有模型

執行 SQL 陳述式

「SQL 交易」建置器可以將模型中的其他 SQL 建置器鏈結到一起,以建立交易序列。

編製好查詢並提供轉換資訊之後,就可以建置整個交易。 此建置器可以建立短期或長期 SQL 交易。 這樣的交易可以識別 SQL 陳述式要執行的資料來源,以及要在 ResultSet 套用的轉換。 針對資料庫執行 SQL 陳述式時,您可以追蹤模型中與陳述式相關的資料庫事件,還可以產生與陳述式執行相關的統計資料及日誌。 這些選項可讓您評定效能,並保留陳述式用途的審核追蹤。 如果 SQL 陳述式傳回資料,則您可以使用「資料頁」建置器進行顯示。

快取查詢結果

「快取控制項」建置器是您用來快取資料庫查詢結果的工具。

此建置器可讓您儲存模型動作的結果,如起始資料庫呼叫的方法。 動作的結果會置於模型的輸出快取中,且可供具有相同設定檔的多個使用者使用。 在資料庫作業中,這表示如果多個使用者具有類似的設定檔,則只要使用一個查詢,就可以為那些使用者提供服務。 這可以將不必要的資料庫往返作業降至最低,並可減少系統負荷。

此類型的快取適合於變更不太頻繁的資料 (每個小時變更一次) 及對許多使用者都相同的資料。 可以從快取獲得好處的典型資料範例,是由 HR 部門群組存取的員工資料。

起始交易及顯示結果

交易是資料庫相關活動的組合,它會以顯示查詢從資料庫傳回的資料作為終結。

IBM WebSphere Portlet Factory 會以 SQL 系列建置器的形式,提供更準確的資料庫交易支援。 以不同的方式結合 SQL 建置器時,您可以建立複式交易,該交易會針對特定 JDBC 資料來源執行 SQL 陳述式、轉換傳回的 ResultSet 資料、從資料建置綱目、以及在模型中的頁面上顯示格式化資料。

交易管理的關鍵是「SQL 交易」建置器。 此建置器可以與其他 SQL 建置器一起使用,來建立短期或長期 SQL 交易。 使用此建置器,您可以建立一系列可供執行的已備妥陳述式或可呼叫交易。

通常,您會將交易的結果送入顯示機制,以檢視結果。 WebSphere Portlet Factory 有提供數個顯示選項,其中功能最強的是「資料頁」建置器。 此建置器可以自動建立表單來顯示資料,及/或提示使用者輸入資料。

「資料頁」建置器會參照綱目 (可能是由「SQL 轉換至 XML 綱目」建置器建立) 或與綱目類型相關的變數,來決定要顯示的表單欄位。 「資料頁」建置器還可以依據綱目 及相關變數定義的元素類型,來建立輸入表單。

最佳化資料庫作業

您可以使用數種技術,來最佳化資料庫作業。

其中包括:
  • 使用「快取控制項」建置器來儲存較靜態的查詢結果。 如果資料變更的頻率超過一小時,則快取資料庫動作是好策略。
  • 使用低階 SQL 建置器中可用的設定,讓資料庫擁有最高的效率。 例如,SQL DataSource 建置器提供「逾時」設定,以管理資料庫的連線及取得資料庫。 「SQL 陳述式」建置器提供「結果集效能提示」設定及「執行節流控制」,可讓您最佳化「結果集」處理,並控制所擷取的資料量。

將 SQL 呼叫建置器新增至現有模型

使用「SQL 呼叫」建置器來建立資料庫連線及擷取資料。

  1. 將「SQL 呼叫」建置器置於模型中。
  2. 提取資料來源名稱,並將資料來源指派給建置器。
  3. 使用建置器的「資料庫瀏覽器」,尋找表格或儲存程序,或者產生範例 SQL 陳述式。
  4. 使用建置器的「結果集」處理設定,格式化查詢傳回的資料,並將結果轉換為 XML 以進行顯示。
  5. 使用「資料頁」建置器,顯示「SQL 呼叫」建置器傳回的資料。

關於將 SQL 資料來源建置器新增至現有的模型

使用此方法,可以將基本資料庫連線功能新增至模型。

將其他建置器新增至模型,以執行下列作業:
  • 實作 SQL 查詢。
  • 格式化要顯示的資料。
  • 顯示查詢結果。
配置「SQL 資料來源」建置器時,您會識別要存取的 JNDI 資料來源及存取所需的認證。 如果資料來源所在的伺服器是遠端伺服器,請提供該伺服器所需的其他配置項目。

此建置器會提供低階連線功能,且其功能會納入「關係資料庫模型」精靈及「SQL 呼叫」建置器中。 此建置器還提供許多其他配置輸入。 您可以使用其他的建置器輸入來完成下列進階連線作業:

  • 連接至遠端 JNDI 伺服器
  • 提供資料庫的鑑別資訊
  • 定義連線逾時參數
  • 發動可以在 WebApp 中處理的資料庫連線相關事件
  • 產生及記載資料庫連線統計資料及活動

建立關聯式資料庫模型

使用新建模型精靈來建置關聯式資料庫模型。

  1. IBM WebSphere Portlet Factory 視景中,按一下檔案 > 新建 > WebSphere Portlet Factory 模型

    即會啟動新建模型精靈。

  2. 選取要建立新模型的專案,然後按下一步
  3. 在「選取模型」對話框中,按一下服務提供者 > 資料庫服務提供者
  4. 繼續進行精靈頁面,以提供所要求的資料庫資訊。

    按一下完成時,就會建立一個新模型,用來存取您指定的 JNDI 資料來源。

顯示 Oracle 儲存程序的結果集

Oracle 儲存程序會傳回 REF_CURSOR 物件,透過此物件,IBM WebSphere Portlet Factory 建置器可以使用儲存程序的結果。

若要使用 REF_CURSOR 物件,必須在 Java 方法中明確地強制轉型儲存程序結果。 您可以使用「方法」建置器呼叫,或鏈結的 Java 物件中的方法。

若要強制轉型 Oracle 儲存程序的輸出參數,請遵循下列步驟:

  1. 使用「SQL 呼叫」建置器來呼叫儲存程序。 您可以在建置器呼叫編輯器中使用「資料庫瀏覽器」功能,選取要呼叫的儲存程序及產生 SQL 陳述式。
  2. 建立用來強制轉型 REF_CURSOR 物件輸出參數的方法。
  3. 在「方法」建置器呼叫中,引數輸入應該是:
    buildername
    字串
    statement
    物件
    position
    int
    action
    字串
    傳回類型
    void
    方法主體
    {    
    try
        {
          // Code is specific to a CallableStatement.  Cast will throw an exception
         // if the caller tries to pass anyother type of object into the method.
                final CallableStatement cs = (CallableStatement) statement;
          if( cs != null && "cast".equals( action ) ) 
         {
            // Cast and register the output parameter at position "position" to be an
           // Oracle CURSOR type.  If the Oracle JDBC driver ZIP / JAR file is not
           // in the method compiler's classpath, then this will cause an error.
                    cs.registerOutParameter( position, OracleTypes.CURSOR );
          }
          else if( cs != null && "set".equals( action ) )
          {
            // The "set" action is not supported for result sets so throw an
           // exception to alert the caller to the problem.
                    throw new Exception( "Cannot set the value of a ResultSet" );
          }
        }
        catch( Throwable t )
        {
            // If anything goes wrong, then log an error to the Bowstreet Event log
           // and rethrow the exception for handling by the model.
                  LogEvent.writeLogEntry( Severity.ERROR, Component.MODEL, t );
           throw new WebAppRuntimeException( t );
        }
      }
    匯入清單
    java.sql.CallableStatement oracle.jdbc.driver.OracleTypes com.bowstreet.appserver.logmanager.* com.bowstreet.webapp.engine.WebAppRuntimeException
  4. 在「SQL 呼叫」建置器呼叫中,直接輸入方法名稱,作為參數的設定/強制轉型方法的值。 在本例中,為 "castRefCursor"。
    註: 請勿使用參照選擇器來選取方法;您只是想在設定/強制轉型方法輸入中提供方法名稱。
  5. 新增用於資料來源的 ojdbc14.jar,然後將它新增至專案的 WEB-INF/work/lib 目錄。
  6. WEB-INF/config/override.properties 檔案中,複製 WEB-INF/config/cluster.properties 檔案中的 bowstreet.methods.classpath 內容及其值,然後貼到 override.properties 檔案。
  7. 新增 ojdbc.jar 至方法編譯器類別路徑值。 例如:
    # This will be used as the method compiler class path, if not
    specified then the System property "java.class.path" will be used.
    # Note - You can specify multiple items by using a comma ","
    separator. There is no need to change the separator based on target
    OS.
    bowstreet.methods.classPath=${bowstreet.rootDirectory}/work/lib/ojdbc14.jar,
    ${bowstreet.rootDirectory}/clientLibs/j2ee.jar,${bowstreet.rootDirectory}/classes,
    ${bowstreet.rootDirectory}/clientLibs/portlet.jar
您現在可以使用 Oracle 儲存程序的結果。

使用已備妥的 SQL 陳述式

與「SQL 呼叫」建置器相比,「SQL 陳述式」建置器提供更多的基本功能。 「SQL 陳述式」建置器是設計來使用可供執行的已備妥或可呼叫 SQL 陳述式。

此建置器可讓您指定位置參數的陳述式值。 您還可以對 ResultSet 及執行節流控制進行各種效能增強設定,以調整對資料庫的查詢。 若要在此建置器中使用已備妥的 SQL 陳述式,請遵循下列步驟:
  1. 在「SQL 呼叫」建置器或編輯器 (例如「記事本」) 中撰寫有效的 SQL 陳述式。
  2. 將陳述式的文字貼到「SQL 陳述式」建置器中,或識別文字所在的間接參照,如「變數」。
  3. 如果陳述式包括位置參數 (?),請在建置器的「陳述式參數」表格中識別那些參數。

實作資料庫交易

請遵循下列步驟,以實作資料庫交易。

  1. 確定在模型中有一個 SQL DataSource 建置器呼叫,指向要查詢的 JNDI 資料庫。
  2. 將「SQL 陳述式」建置器併入模型中,以建立要針對資料庫執行的陳述式或儲存程序。
  3. 建立 XML 轉換,以格式化傳回的「結果集」。
  4. 使用「SQL 交易」建置器,將模型中的各種 SQL 建置器構件鏈結在一起。
  5. 如果必要的話,請使用「SQL 轉換至 XML 綱目」建置器,為傳回的資料產生一個綱目。
  6. 將交易的結果用作「資料頁」建置器的輸入,來建立與資料完全符合的顯示頁面/表單。

設定快取資料庫查詢

使用「快取控制項」建置器來設定對資料庫查詢的快取。

  1. 將「快取控制項」建置器置於模型中。
  2. 藉由選取要快取的動作來配置建置器。 在大部分情況下,特定的「要快取的動作」是 sqlCallNameTransform LJO 上的 executeForCaching 方法。 「SQL 呼叫」建置器會將此 LJO 新增至 WebApp。
  3. 在建置器中指定在快取中保留資訊的時間長度 (更新間隔輸入) 及用於重新整理快取的觸發程式 (索引鍵輸入)。

使用 SQL 陳述式建置器來轉換陳述式結果

「SQL 陳述式」建置器提供設定,容許透過方法驅動的轉換,對直欄進行特殊處理。 例如,您可以使用此特性,將輸出參數轉換為記錄集。

除了 SQL 組合之外,「SQL 陳述式」建置器還提供方法,讓您將自訂轉換方法套用至 ResultSet 中的直欄。 這可讓您以逐欄方式,控制傳回之資料的 XML 格式。 如果 ResultSet 包含複式 JDBC 直欄類型,或您要對 ResutlSet 套用其他格式,就可能需要執行此動作。
  1. 將「SQL 轉換至 XML」建置器新增至模型,以使用 XML 變數儲存結果。
  2. 將「SQL 交易」建置器新增至模型,並指定「資料來源」、「SQL 陳述式」及「SQL 轉換」的名稱作為交易步驟。

處理事件

模型可以使用事件來設陷及處理 Web 應用程式或小組件中不同類型的事件。

模型可以處理下列類型的事件:

發動事件時,模型可以傳送資料,並可以播送已發生特定動作。

系統事件

所有模型都支援下列預先定義的系統事件:

系統:OnWebAppLoad
每當針對階段作業建立模型 WebApp 的新實例時發動。
系統:OnRequest
每當對 WebApp 發出 (通常從瀏覽器) 外部要求時發動。
系統:OnUnhandledError
發生錯誤且未由明確錯誤處理常式處理時發動。
頁面:pageName:OnPageLoad
每當要求指定的頁面時發動。 模型中的每個頁面都會取得自己的 OnPageLoad 事件宣告。

若要處理這些事件的任何一個,請將「事件處理常式」建置器新增至模型,並指定當發生事件時要執行的動作。

使用者事件

當使用者與應用程式的 HTML 控制項互動時,您可以使用「HTML 事件動作」建置器來處理那些事件。 此建置器會監視指定的 HTML 控制項 (其他建置器新增至頁面的控制項),並在指定事件發生時執行動作。 例如,若要在使用者按一下鏈結時提交表單,請使用「HTML 事件動作」建置器呼叫。

已宣告事件

您可以透過將「事件宣告」建置器新增至模型,來宣告應用程式特定事件。 「事件宣告」建置器會將 fireEventName 方法新增至模型,讓您發動事件。 具有相同「事件宣告」建置器呼叫 (使用匯入的模型直接或間接新增) 的任何模型,都可以處理該事件。

小組件事件

「小組件」事件是由 IBM Lotus Mashups 中小組件處理的特殊事件。 使用「小組件事件」建置器來建立小組件事件。

宣告事件

您可以將一個以上的「事件宣告」建置器呼叫新增至模型,為應用程式宣告事件。

您也可以建立一個模型,包含應用程式中或一組相關模型所使用的所有事件宣告建置器呼叫,並將該模型匯入至其他模型中。 透過這種方式,您就無需將事件宣告新增至目標模型。
  1. 建立一個空模型。
  2. 針對您想要能夠處理的每個事件,新增「事件宣告」建置器呼叫。
    1. 在建置器挑選器中的建置器下,按兩下「事件宣告」。
    2. 在建置器呼叫編輯器中,於事件名稱輸入中,指定事件的名稱。
    3. 如果您要傳送資料作為處理事件的一部分,請設定引數名稱及類型。
    4. 按一下確定以儲存輸入,並關閉建置器呼叫編輯器。
    無論您決定將事件宣告建置器呼叫直接新增至發動及處理那些事件的模型,還是實作儲存庫方式,新增「事件宣告」建置器呼叫本身是相同的。
  3. 儲存模型。
  4. 針對您想要能夠發動或處理其中一個已宣告事件的每個模型,將定義事件宣告的模型匯入至其中。

關於處理事件

將「事件處理常式」建置器新增至模型,以處理在此模型中宣告的事件。

一旦模型包含適當的事件宣告,您就可以新增「事件處理常式」建置器來處理那些事件。 在建置器中,請指定要處理的事件及要執行的動作。 發動事件時傳遞的任何引數都會傳遞至事件處理常式指定的動作。 請確定您指定的動作採用適當的引數。

發動特定模型上的事件

您可以發動特定模型或特定目標上的事件。

若要發動特定模型上的事件,請使用 webAppAccess.getModelInstance() 方法來擷取另一個模型的 WebAppAccess 物件:

  1. 在來源模型中,建立一個方法或建立一個呼叫 fireEventName 或 fireTargetedEventName 方法的方法呼叫。

    例如,您可能會建立呼叫 fireTargetedEvent1 方法的「方法呼叫」建置器,傳遞目標模型的 WebAppAccess 物件實例及兩個字串引數。

    WebAppAccess targetModel =
    webAppAccess.getModelInstance("TargetModel", null, true);
    您也可以直接在方法中呼叫 fireEventName 或 fireTargetedEventName 方法,如下所示:
    fireTargetedEvent1(webAppAccess, targetModel, "This is foo.","This
    is bar.");
  2. 執行該方法或方法呼叫 (它會發動事件作為其他方法的一部分),或將事件當作動作新增至「動作清