2009-11-19 55 views
0

儘管我花了整整一天的時間開發一個JSF應用程序,但我從來沒有對此事進行任何培訓,而且我必須管理我是一個仍然混淆了整個JSF難題適合在一起。 JSF只是看起來有點扔給我。向我解釋不同的JSF組件庫相關

  • JSF-API
  • jslt
  • 小面
  • MyFaces的
  • 特立尼達
  • 多巴哥
  • JSP API

,我會很感激,如果任何人都可以給我簡要介紹了這些組件NTS,哪些是標準,哪些可以被排除在外,哪些可以/需要一起使用

回答

3

JSP和JSTL

JSP有經歷了許多迭代,但這是Java EE的核心動態頁面技術。這是一個可服務的API,但使用JSP通常意味着更多的手動管理代碼/資源。

JSTL是JSP標準模板庫。這是一組標準的JSP標籤。不要將這些標籤與JSF標籤混合;它們屬於不同的編程模型。

JSF API

JSF規範。這是JSF Model-View-Presenter框架的核心。這指定了一組簡單的核心組件和核心生命週期工件。有兩個廣爲人知的實現:Mojarra(開源的Sun API)和Apache MyFaces。 Java EE 5及更高版本的一部分。

的Facelets

視圖技術設計用於JSF。使用此代替JSP。您不能在Facelets視圖中使用JSP標籤。這在Java EE 5中不是標準的,但是在JSF2中進行了標準化(因此即將推出Java EE 6)。 Facelets提供的更好的模板通常意味着您可以更少地依賴第三方庫。

Facelets提供了一些看起來像JSP JSTL標籤但不共享任何代碼的標籤。通常應該避免使用這些標籤(請參閱Facelets doc獲取建議)。

阿帕奇特立尼達和多巴哥

這些是提供組件和其他設施JSF庫。由於核心控件集合相當基礎,因此常常使用這樣的庫,特別是在不使用Facelets的情況下。這些不是Java EE標準的一部分。庫兼容性各不相同另請參閱jsfmatrix.net

+0

我並不主張全面禁止JSTL標籤 - 民衆應該閱讀文檔並自行判斷。這是一個人們遇到問題的領域,尤其是當他們將JSP期望納入JSF應用程序並將其作爲另一個標記庫處理時。將JSF和非JSF標籤混合在一起需要詳細瞭解兩個生命週期(並且我常常覺得我太像編程到實現而不是抽象)。不過,你對這些功能是正確的。新的應用程序應該嘗試使用Facelets - 它更適合。 – McDowell 2009-11-20 10:15:47

+0

JSTL不是JSP標準標籤庫嗎? – InverseFalcon 2009-12-17 23:02:06

+0

@InverseFalcon - 這是,但我不確定你的意思。 – McDowell 2009-12-18 10:18:39

2
  • JSF-API是在javax.faces接口和類
  • JSTL是一組標準的標籤(主要是在JSP中使用) - 其中大部分被替換爲JSF標籤,順便說一句
  • 小面是一個演示和模板框架(如JSP)
  • MyFaces的是JSF標準的實現。另一種可能性如果JSF RI(參考實現)
  • 特立尼達和多巴哥是組件庫 - 一些東西不包含在JSF組件的默認設置
  • JSP是替代小面(或反之亦然),其也是一個演示框架。
  • UEL - (你沒問,但它是重要的) - 統一表達式語言 - 設定的規則,你的#{..}表達式