2010-02-04 72 views
15

我剛開始閱讀Java EE 6 Tutorial,我有點困惑!我瞭解JavaServer Pages(JSP),甚至在我的本科學習期間做了一些編碼。但是現在,在本教程中,我沒有看到關於JSP的任何信息。相反,我閱讀了有關Facelets的新視圖定義框架(如本教程中所述)。我在互聯網上搜索了一下,以澄清JSP和Facelets之間的區別,並且我遇到了幫助我很多的this post(尤其是BalusC's answer)。但是這些條款對我來說還是有點不清楚。JSP和Facelets有什麼區別?

JSP和Facelets有什麼區別? Facelets是否會取代JSP,還是僅僅是一種更適合JSF的技術(如果是後者,爲什麼)?如果它們不同,我應該什麼時候使用它們中的每一個?

+1

FWIW:我已經改進了我的鏈接答案,以包含更多關於JSP vs Facelets的內容。檢查關於JSF的段落。 – BalusC 2010-02-04 11:48:10

+0

@BalusC非常好,謝謝。非常豐富! – Alex 2010-02-04 16:15:09

+0

http://www.tugay.biz/2016/07/sorry-what-is-facelets.html – 2016-07-21 18:25:20

回答

11

你可以從教程閱讀,

的Facelets被用來指 術語的JavaServerTM Faces視圖定義 框架,這是已使用 使用JavaServer開發的頁聲明 語言面臨技術。作爲JavaServer Faces 2.0的 ,Facelets是JavaServer Faces規範 的 部分,並且也是用於構建JavaServer 基於Faces的應用程序的首選演示文稿 技術。

現在,JSP是Web的標準視圖技術。但是,當將JSF用作Web框架時,JSP不支持JSF 2.0中提供的所有功能。因此,需要一些標準視圖技術來處理JSF 2.0。所以,Facelets就是這樣。

如果您根本不使用JSF,則不需要使用Facelets。在這種情況下,您可以使用JSP。或者還有其他幾個模板框架,比如FreeMarker和Velocity。而且,一些Web框架定義了自己的標記,如Struts2。所以,如果你決定使用Struts,那麼使用Struts標記是一種可行的方法。

+0

爲了避免混淆和清楚理解,無論如何,我建議您學習JSP。之後,你將自動能夠看到你自己。 JSP並沒有過時,並且仍然在很多Java Web應用程序中用作視圖技術。 – 2010-02-04 03:57:07

+0

因此,如果我理解正確,Facelets和JSP(以及其他標記)都是將數據(通過使用bean或執行其他操作)放入網頁的方法,對吧?而選擇你應該使用哪一個完全取決於框架。我對麼? – Alex 2010-02-04 04:04:28

+2

是的,有點。爲什麼排序?因爲有很多框架沒有引入自己的任何東西,而且滿足於JSP,加上自己的taglib。所以,JSP仍然很有用。 JSF和類似框架的情況有點不同。 JSF風格各異。它在組件方面做了一些事情。掛毯是另一個,但不是很熟悉Tapestry。 – 2010-02-04 04:15:23