Ajax4jsf 允許開發人員將 Ajax 功能添加到 JSF 應用程序中,而不需要 JavaScript 或用 Ajax 圖形部件替換現有的組件。這個包還允許在使用 Java 2D 庫時動態地生成圖像。Ajax 是一種編程技術,它處理只有頁面的一部分需要處理而不需要重新裝載整個頁面的情況。這種方式的好處包括減少服務器上的處理時間以及加快客戶端的響應速度。
與 Tomahawk 相似,Ajax4jsf 提供了一套可以很容易地與 JSF 標記一起使用的標記。在本教程後面對 Developer Forum Signup 示例應用程序進行改進時,將討論這些標記的示例以及如何將 Ajax4jsf 與 Eclipse 進行集成。接下來,將學習組成這個庫的每個組件、在使用它時必須記住的限制以及如何在 Eclipse 項目中添加 Ajax4jsf。
Ajax4jsf 組件被設計成可以輕鬆地與現有的 JSF 應用程序進行集成,同時提供了改進性能的 Ajax 功能。表 1 中描述了 Ajax4jsf 庫中包含的所有標記。
表 1. Ajax4jsf 庫標記
Ajax4jsf 組件 | 描述 |
---|---|
<a4j:actionListener> |
其效果類似於 JSF 中的 <f:actionListener> 或 <f:valueChangeListener> 標記,但是它用於 Ajax 容器。 |
<a4j:actionparam> |
結合了 <f:actionListener> 和 <f:param> JSF 標記的功能。 |
<a4j:commandButton> |
效果類似於被點擊時的表單 Submit 按鈕,但是呈現爲 HTML <input> 標記。 |
<a4j:commandLink> |
效果類似於被點擊時的表單 Submit 按鈕,但是呈現爲 HTML <a> 錨標記。 |
<a4j:loadBundle> |
裝載當前視圖的本地化資源束。 |
<a4j:mediaOutput> |
允許創建動態生成的內容。 |
<a4j:outputPanel> |
在頁面上創建一個啓用 Ajax 的部分,允許這個區域中的內容重新呈現(即使導致 Ajax 請求的組件沒有專門提到這個區域)。 |
<a4j:page> |
呈現完整的 HTML 頁面結構。但是,它必須是 JSF <f:view> 標記的第一個和惟一的子元素,在它外邊不能有 HTML 代碼。 |
<a4j:region> |
決定 JSF <f:view> 的哪個部分將通過爲相關聯的 Ajax 請求提供內容來處理。這會只更新頁面中需要更新的部分,從而改進性能。 |
<a4j:status> |
通過指出請求何時開始或結束,提供關於指定區域的 Ajax 請求的客戶端狀態。 |
<a4j:support> |
將 Ajax 功能添加到與 JSF 相關的組件中。這個標記可能是最常用的。 |
根據場景,某些組件會比其他組件更常用。接下來,將學習在使用 Ajax4jsf 時必須記住的條件。
根據 Ajax4jsf 文檔所述,開發人員必須記住某些限制才能創建正確的 Ajax 和 JSF 應用程序:
- Ajax4jsf 框架並不在頁面上追加或刪除元素,它只會替換頁面上的元素。要想在頁面上追加代碼,應該使用一個空元素標出它的位置。
- 應該只創建嚴格的符合標準的 HTML 和 XHTML 代碼,不要省略任何必需的元素或屬性,因爲 Ajax 請求由
XMLHttpRequest
函數以 XML 格式創建。但是,這些請求的 XML 格式可能會避開瀏覽器中的大多數檢驗和任何糾正處理。 - 最後,大多數 Ajax4jsf 標記有一個屬性,它指定在發出 Ajax 請求之後要處理的元素的 ID。這些元素的 ID 必須匹配在 Ajax4jsf 標記的屬性中指定的 ID,只有這樣更新纔會成功。
既然已經瞭解了組件和使用 Ajax4jsf 的條件,就需要將這個庫添加到 Eclipse 項目中,然後才能對 Developer Forum Signup 應用程序進行改進。