Facelets是一種輕量級的頁面宣告語言,用於使用HTML樣式構建JSF(JavaServer Faces)檢視。
它包括以下功能:
優點
JSF(JavaServer Faces)技術支援各種標籤庫,以將元件新增到網頁。 為了支援JavaServer Faces標籤庫機制,Facelets使用XML名稱空間宣告。
下表顯示了Facelets支援的標籤庫。
標籤庫 | URI | 字首 | 範例 | 內容 |
---|---|---|---|---|
JSF Facelets標籤庫 | http://xmlns.jcp.org/jsf/facelets | ui: |
ui:component ,ui:insert |
模板標籤 |
JSF HTML標籤庫 | http://xmlns.jcp.org/jsf/html | h: |
h:head ,h:body |
所有UI元件物件的JavaServer Faces元件標記 |
JSF核心標籤庫 | http://xmlns.jcp.org/jsf/core | f: |
f:actionListener , f:attribute |
JSF標籤獨立於任何特定渲染工具包的自定義操作 |
傳遞元素標籤庫 | http://xmlns.jcp.org/jsf | jsf: |
jsf:id |
支援HTML5友好標記的標籤 |
傳遞屬性標籤庫 | http://xmlns.jcp.org/jsf/passthrough | p: |
p:type |
支援HTML5友好標記的標籤 |
複合元件標籤庫 | http://xmlns.jcp.org/jsf/composite | cc: |
cc:interface |
支援複合元件的標籤 |
JSTL核心標籤庫 | http://xmlns.jcp.org/jsp/jstl/core | c: |
c:forEach , c:catch |
JSTL 1.2核心標籤 |
JSTL函式標籤庫 | http://xmlns.jcp.org/jsp/jstl/functions | fn: |
fn:toUpperCase , fn:toLowerCase |
JSTL 1.2函式標籤 |
JSF規範定義了JavaServer Faces應用程式的生命週期。以下步驟為基於 Facelets 的應用程式的過程描述。
生命週期是在用戶端使用Facelets
建立的網頁發出新請求時啟動。 JSF建立一個新的元件樹或javax.faces.component.UIViewRoot
並放入FacesContex
。
如果可用的UIViewRoot
應用於Facelets
, 檢視可以填充元件進行渲染。
新建的檢視作為對用戶端的響應而被渲染。
在渲染時,儲存此檢視的狀態用於下一個請求。 儲存輸入元件和表單資料的狀態。
用戶端可以與檢視互動,並從JSF應用程式請求另一個檢視。 此時,儲存的檢視從儲存狀態恢復。
恢復檢視再次通過JSF生命週期,如果沒有驗證問題,並且沒有觸發任何操作,最終將生成新檢視或重新呈現當前檢視。
如果請求相同的檢視,則再次呈現儲存的檢視。
如果要求新檢視,則繼續執行【步驟2】。
將新檢視作為對用戶端的響應。