2008-12-19 65 views
11

我目前正在構建一個Spring MVC應用程序。我正在尋找使用帶有標籤庫的JSP頁面來處理HTML的視圖層和格式,但我在公司中遇到了另一個使用Velocity模板來實現相同目的的組。在MVC應用程序中使用JSTL vs Velocity進行視圖層的好處?

  1. 兩者都容易理解的語法:

    從我所看到的,好像也有很多這兩種方法之間的相似性在我看來。使非開發人員能夠輕鬆理解和使用,從而使設計人員可以專注於HTML/CSS,並且只需在少數需要條件/動態內容的情況下使用指令/標記庫,而無需完全理解Java的。

  2. 很容易看出內容的哪部分是HTML,哪些是指令/邏輯。
  3. 兩者都被大量使用並得到很好的支持。
  4. 很容易與Spring MVC集成。

但是在比較這兩種技術時,我看不到任何具體的原因使用一個與另一個。我很難考慮Velocity或JSTL特有的缺點。

所以我的問題是,你認爲每個人的利弊是什麼?如果您使用其中一種或另一種構建了(Spring)MVC應用程序,是什麼讓您決定使用的視圖層技術,以及什麼(如果有的話)使您決定使用其他技術?

更新:我發現存檔,這同一主題的類似的討論了Spring Framework論壇的here,這可能是一些利益給任何人制造JSTL和速度之間的相同的決定,因爲我。

回答

8

我寧願使用Velocity,只是因爲使用JSP + JSTL可以允許懶/懶惰的開發人員通過添加scriptlet而陷入困境。應該沒有理由在您的視圖層中擁有Java代碼。理解Velocity並不需要太多,事實上我只是在兩週內就把它拿起來了。雖然我不喜歡輸出的格式,但大部分情況下它的工作狀態非常好。我們實際上並沒有在應用的視圖層中使用它,而是爲了生成供其他瀏覽器使用的HTML。我們將Velocity的輸出保存爲文件,然後將其部署到另一臺服務器以供其他Web客戶端使用。

6

我實際上稍微偏好Freemarker來速度,以防萬一你打開探索其他選項。這裏比較:

http://freemarker.org/fmVsVel.html

我和Ben的有關實施通過避免JSP和腳本的可能性,一個簡單的觀點陳述同意。我也喜歡在任何類型的執行環境(JUnit,main()方法)中呈現Freemarker或Velocity模板而不需要像JSP那樣需要Servlet/JSP容器的能力。

+0

對我來說,freemaker是他們所有人的老闆......我嘗試了幾次,這很了不起,而且在短時間內很難得到它。 – engma 2013-05-28 08:43:41

2

JSP也更難以在視覺上與嵌入式HTML區分開來。隨着速度,這是非常明顯的。

此外,VelocityTools軟件包提供了大量附加功能。

相關問題