成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡單描述JSF和Facelets

開發 后端
本文簡單描述JSF和Facelets,包括Facelets概述,Facelets的特性和Facelets模板框架。

JSF和Facelets

試圖把 JSF 和 JSP 結合起來就像試圖要把腳硬塞進手套一樣:可能做得到,但是只是更好的解決辦法出現之前的一個權宜之計。在這篇文章中,JSF 的熱心支持者 Rick Hightower 介紹了關于 Facelets 他最喜歡的內容:容易的 HTML 樣式的模板化和可重用的復合組件。

由于最近在 Java™ 服務器外觀(JSF)項目上工作,我很有幸第一次使用了 Facelets。關于 Facelets,我最喜歡的是它讓我可以創建可重用的復合組件。能夠拿出一個頁面(例如 JSP)并把它變成組件,對于我的 JSF 開發來說真是莫大的好處。我的結論是什么?如果不用 Facelets,那么就無法得到能從 JSF 獲得的最大收獲。

JSF 和 Java 服務器頁面技術之間的不匹配,是 JSF 開發中的一個嚴重問題。問題是如何把 JSP 的動態內容集成到 JSF 基于組件的模型中。JSP 非常重視生成動態內容輸出,而 JSF 需要 JSP 來協調組件模型的構建。因為這個任務超出了 JSP 原來的目的,所以產生了距離。

大多數 JSF 開發人員只是學會了一事一議地解決這類問題,但是這就像在錘子上放一個枕頭,最終還會掉下來打傷腦袋。Facelets 是更加全面的解決方案:專為 JSF 組件模型度身定制的模板化語言。

Facelets 有以下吸引人的特性:
◆模板化(像 Tiles)
◆復合組件
◆定制的邏輯標記
◆表達式語言
◆對設計師友好的頁面開發
◆創建組件庫

這些特性比我想像的要更相關和統一。在這篇文章中,我討論前兩個:模板化和復合組件。我使用的 Web 應用程序基于為我的針對懷疑者的 JSF 系列開發的一個應用程序,我把它更新成使用 Facelets 視圖而不是 Tiles。在進一步閱讀之前,應當 下載示例代碼。如果要隨著討論一起操作,還需要 安裝 Facelets。

Facelets 概述

對于 Facelets 可能會做的最大一個錯誤假設,就是它只是 Tiles 的替代品。Facelets 遠不止如此:它是思考 JSF 的新方式。
JSP 是種生成 servlet 的模板化語言。JSP 的主體與 servlet 的 doGet() 和 doPost() 方法等價(也就是說,成為 jspService() 方法)。JSF 定制標記(例如 f:view 和 h:form)只是調用 JSF 組件來呈現它們自己的當前狀態。JSF 組件模型的生命周期獨立于 JSP 生成的 servlet 的生命周期。這種獨立性就是混淆的來源。

與 JSP 不同,Facelets 這個模板化語言,從構建之初,就考慮了 JSF 的組件生命周期。使用 Facelets,生成的模板會構建組件樹,而不是 servlet。這就允許更好的重用,因為可以把組件組合成另一個組件。

Facelets 減少了編寫定制標記才能使用 JSF 的需求。Facelets 本身就可以使用 JSF 定制組件。溝通 JSF和Facelets 只需要很少的特殊編碼:要做的全部工作就是在 Facelet 標記庫文件中聲明 JSF 組件。在 Facelets 模板化語言中可以直接使用 JSF 組件,不用任何額外的開發。

Facelets 模板框架

在提供針對組件構建設計的模板框架方面,Facelets 與 Tapestry (請參閱 參考資料)類似。但是,對于具有 JSP 背景的我們來說,Facelets 看起來比 Tapestry 友好得多。它允許使用熟悉的 JSTL 樣式的標記和 JSTL/JSF/JSP 樣式的表達式語言。大大降低的學習曲線意味著可以更加迅速地開始開發。

Facelets 允許定義能夠直接包含進頁面或者容易地添加到 Facelet 標記庫的組件集。實際上讓人高興的是在 Facelets 中定義定制標記(復合組件和類似 JSP 定制標記的標記)的迅速。使用這些組件集,Facelets 還允許定義站點模板(和更小的模板)。這與使用 Tiles 很相似,但是少了定義文件。也可以在定制 JSF 組件內部使用 Facelets,因為 Facelets API 提供了可以容易地與 JSF 組件集成的接口。

從Tiles 到JSF和Facelets

如前所述,在這里使用的示例 Web 應用程序基于為我的 針對懷疑者的 JSF 系列創建的示例。它為一家在線 CD 店管理庫存,創建、讀取、更新和刪除(CRUD)清單。它包含一個表單,讓用戶向系統輸入新 CD,有一個單選按鈕列表,允許用戶選擇音樂分類。當用戶選擇了一個分類時,就觸發某些 javascript 立即把表單提交回服務器。應用程序還包含一個 CD 清單,用戶可以根據標題或藝術家對清單中的 CD 排序。

原來的應用程序從 Tiles 得到視圖支持,現在我將用 Facelets 構建視圖。我先從用 Facelets 替換示例中的 Tiles 支持開始,然后編寫復合組件。

【編輯推薦】

  1. JSF組件模型開發指南
  2. Seam與JSF的加減法
  3. JSF圖形組件管理圖形bean組件
  4. 開發自定義JSF組件
  5. JSF和Tapestry全面比較
責任編輯:佚名 來源: JavaEye
相關推薦

2009-06-24 13:06:41

JSF組件Facelets

2009-06-22 13:41:58

FaceletsJSF組件

2009-06-26 17:36:10

FaceletsJSF

2009-06-24 17:43:24

Struts和JSF

2009-06-25 11:21:36

JSF流行名詞

2009-06-23 13:01:04

JSF應用

2009-06-23 13:55:17

JSF標簽

2009-07-07 17:18:57

Facelets介紹JSP與Facelet

2009-06-24 15:44:59

JSF的加減法Seam

2009-06-24 10:47:55

JSF生命周期

2009-08-26 14:54:23

C# new和over

2009-08-19 10:09:21

C#和C++

2009-06-26 13:48:57

G4JSFGWTJSF

2009-06-01 09:30:51

JSF2.0FaceletsAjax4JSF

2009-06-22 14:22:41

JSF和Tapestr

2009-08-28 11:22:11

C#裝箱和拆箱

2009-06-24 13:50:29

JSF和MVC

2009-09-22 11:16:27

Hibernate經驗

2009-09-27 13:00:56

Hibernate S

2009-09-09 15:28:43

Linq to obj
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品91| 性色在线 | 国产一区二区精品在线观看 | 九热在线 | 在线视频第一页 | 亚洲精品久久 | 91久久久精品国产一区二区蜜臀 | 亚洲男人天堂网 | 国产精品久久久久久久久久久新郎 | 久久专区 | 国产成人免费视频网站视频社区 | 欧美一区二区视频 | 日韩免费毛片视频 | 国产精品免费一区二区三区四区 | 国产目拍亚洲精品99久久精品 | 成人国产精品久久 | 秋霞电影一区二区 | 女人夜夜春 | 91影片| 波多野结衣中文视频 | 精品91 | 日韩成人免费视频 | 国产欧美日韩一区 | 亚洲一页 | 91看片网址| 精品一级电影 | 性色的免费视频 | 在线视频中文字幕 | 青青草国产在线观看 | 亚洲av毛片| 毛片链接| 99国产精品99久久久久久 | 美女131mm久久爽爽免费 | 国产精品一区二区在线 | 国产精品18久久久久久白浆动漫 | 日韩a级片| 一区二区三区四区在线 | 亚洲视频一区二区三区 | 一区二区视频免费观看 | 国产精品不卡视频 | 久久久久久国产精品免费免费狐狸 |