Facelets是一種羽量級的頁面聲明語言,用於使用HTML樣式構建JSF(JavaServer Faces)視圖。
它包括以下功能:
- 它使用XHTML創建網頁。
- 除了支持JavaServer Faces和JSTL標記庫之外,它還支持Facelets標籤庫。
- 它支持表達語言(EL)。
- 它是使用組件和頁面的範本。
優點
- 它通過範本和複合組件支持代碼可重用性。
- 它通過定制提供組件和其他伺服器端對象的功能可擴展性。
- 編譯時間更快
- 它在編譯時驗證運算式語言。
- 高性能渲染能力。
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函數標籤 |
Facelets應用程式的生命週期
JSF規範定義了JavaServer Faces應用程式的生命週期。以下步驟為基於 Facelets 的應用程式的過程描述。
生命週期是在客戶端使用
Facelets
創建的網頁發出新請求時啟動。 JSF創建一個新的組件樹或javax.faces.component.UIViewRoot
並放入FacesContex
。如果可用的
UIViewRoot
應用於Facelets
, 視圖可以填充組件進行渲染。新建的視圖作為對客戶端的回應而被渲染。
在渲染時,存儲此視圖的狀態用於下一個請求。 存儲輸入組件和表單數據的狀態。
客戶端可以與視圖交互,並從JSF應用程式請求另一個視圖。 此時,保存的視圖從存儲狀態恢復。
恢復視圖再次通過JSF生命週期,如果沒有驗證問題,並且沒有觸發任何操作,最終將生成新視圖或重新呈現當前視圖。
如果請求相同的視圖,則再次呈現存儲的視圖。
如果要求新視圖,則繼續執行【步驟2】。
將新視圖作為對客戶端的回應。
上一篇:
JSF操作事件
下一篇:
JSF Facelets視圖