2011-02-11 209 views
5

有什麼更好? 我們將開始一個新的Web項目,這是一個需要選擇技術的問題。 項目包括Spring MVC + WebFlow。 任何支持,擴展,性能方面的好/壞經驗?Velocity vs Apache Tiles

謝謝。

回答

6

你想如何比較瓷磚與速度? - Tiles是組合頁面片段的一種方式,而Veleocity是一個更完整的模板引擎,與Tiles相比,JSP更好。

無論如何:我在Tiles和JSP中使用Spring MVC:它工作得非常好,節省了大量時間(朝着使用JSP或Sitemash的JSP),並且我沒有注意到任何性能問題。 (但是web應用程序從未在高負載下使用。)

+0

謝謝你的回答。我們應該選擇如何渲染主要的視圖。我也使用了Spring MVC + Tiles,它工作的很好。一個新項目即將到來,客戶將會選擇Velocity。我需要的只是一些爲什麼一種方法比另一種方法更好的論點。如果客戶想要在應用程序發佈之後編輯站點視圖,而不打擾開發者,那麼該怎麼辦? – StanislavL 2011-02-11 10:26:33

+1

@StanislavL技術知識是其中最強有力的論據之一。 devloper的確如此,但對於客戶/維護者來說,這一點更爲重要。 - 如果客戶非常熟悉一項技術,並且該項目可以通過這項技術完成,那麼最好使用客戶的最愛,因爲軟件開發人員比起客戶來說更容易支持這一技術。 - 無論如何:Velocity和JSP並不那麼難。 – Ralph 2011-02-11 11:11:13

1

同時使用。瓷磚和Velocity集成得很好,可以解決不同的問題。你可以用Velocity的#include和#parse指令做一些Tiles-ish的東西,但是Tiles能夠更好地完成這些組合。

2

有一個Tiles 2.2的Velocity插件,所以你可以同時使用 - 以速度訪問上下文並像JSP一樣動態構建你的磚塊,而瓷磚將你的網站磚塊結合在一起。然而,Tiles不允許做很多事情(至少我還沒有發現它們),而且它的文檔比Spring或JSF的文檔要老舊很多。所以你可以考慮使用不同的技術。

我在我的currect項目中有Tiles引用,因爲Roo爲我做了這件事,但現在我將所有東西都移到了JSF中。

+0

爲了這些工具的新手可能正在閱讀這個問題,可能值得一提的是,JSF是一個基於組件的MVC框架,它以「Facelets」的形式提供了自己的模板引擎*和*轉換標記, 。相反,獨立模板引擎更類似於基於請求的MVC框架,這些框架或者缺少自己的View功能,或者與View技術無關。 Tiles和Velocity都與Facelets在相同的空間上競爭,因爲Facelets提供了這兩種需求。 – 8bitjunkie 2014-01-08 17:34:50

7

Velocity和Tiles是兩個不同的野獸 - Tiles是一個佈局引擎,Velocity是一個模板引擎。就功能而言,它們不會相交。

從你的問題我猜你可能不會使用JSP。這是一個明智之舉。速度是那裏的模板引擎之一,它做了一個絕對精彩的工作。

如果您選擇遵循模板引擎路線進行查看,請檢查commentit。這是我創建的一個小型,簡單快速的佈局引擎。它可能完美地爲您的目的服務。

5

使用瓷磚,如果您有要彙集在一個模板(即你有一個頁眉,頁腳,側邊欄一個單獨的頁面一些單獨HTML文件,並且希望把他們聚在一起,並在顯示它們類似報紙般的格式)。

使用速度,如果你想從一個Java後端帶來跨越動態內容和注入這些值轉換成一個完整的HTML頁(即你有一個HTML表顯示選擇的車,和所有的轎車都存儲使用JPA,您可以將Car數據從數據庫中取出,並將List<Car>保存在EJB Bean,Spring @Component或類似文件中,然後使用Velocity將該信息存儲爲Map中的存儲區項目,並使用VTL標記來引用Map中的鍵值項目,以便它們可以作爲HTML respo的一部分呈現NSE。爲了實現上述目的,Velocity將其自身定位爲完全的前端控制器Servlet,或者由另一個MVC框架(即,Spring MVC提供了一個包含Velocity Servlet提供的功能的View Resolver)。

HTML請求通過web.xml配置指向Velocity Servlet或替代MVC框架Servlet。作爲servlet響應的一部分,您的預烘烤HTML視圖(包含Velocity VTL標記)充滿了Map數據。

有效地,並以摘要:

速度參賽的相同的空間JSP。

瓷磚更類似於頁面轉換。在PHP領域,Smarty是一位受歡迎的表親。

你不選擇它們,但很好可以使用