回答
Velocity和Freemarker都很有能力。不要爲選擇而痛苦。他們在設計背後有着相當不同的優先級,所以一旦超越了基本模板,他們的功能集很難進行比較。 Velocity的語法更簡單,更明確,Freemarker的重語法允許它們支持JSP庫。 Velocity通過附加項目(如VelocityTools)提供了更多的自由度和更多的功能。 Freemarker提供了更好的本地空白處理,最近的Velocity版本提供了更有趣的內容控制(#define,#evaluate,#[[literal block]]#)。
至於性能方面,Velocity近年來取得了很大的收益,除了最初的模板解析。但對於性能至關重要的任何理智的應用程序,您應該將這兩個引擎設置爲緩存模板並僅解析一次,從而減少了這個問題。一般來說,你會發現你使用任何一個引擎的表現都更依賴於模板的性質,而不是引擎之間的差異。
StringTemplate也很受歡迎,雖然它們是MVC納粹,並且無法匹配Velocity或Freemarker的功能。;)您的潛在失望程度比任何一種更受歡迎的模板引擎都要高一些,而這兩種模板引擎都不會令人失望。抓住一個,然後去。
**「不要爲選擇而痛苦」**寫得很好! – Stephan 2018-01-09 11:38:58
我更喜歡FreeMarker。我喜歡這些文檔,我總能找到我需要的東西。總的來說,我只是覺得它非常強大。
String Template是另一種選擇。
同樣,這個比較已經過時了,只比較了基本特性,忽略了Velocity的各種強大的附加項目。 Freemarker社區沒有相信他們沒有更新它。 – 2010-11-10 15:37:19
@Nathan Bubna - 我在某個時候並沒有真正使用過速度,那個比較中究竟是什麼過時了? – Andy 2010-11-10 15:55:38
大部分,我可以在這裏指出。它基於Velocity 1.2,就像9年前一樣。速度1.7正在測試中,並很快成爲決賽。它似乎也意味着像VelocityTools這樣的東西是「解決方法」,這不是一個公平的評估。 – 2010-11-11 18:02:52
freemarker項目頁面上有一個lengthy comparison。
從來沒有與速度工作,我不能有意義地比較這兩個,但我對freemarker非常滿意,我看到沒有理由超越它。
那麼長時間的比較對於Velocity 1.4來說可能是有效的,但是Velocity自那以後增加了很多。而且這種比較總是拒絕承認流行的VelocityTools項目的存在,該項目一直提供了豐富的功能。 – 2010-11-10 15:16:17
更正,該比較對速度1.2有效。 Velocity現在支持其中大部分(儘管有時以不同方式實現),其餘大部分由VelocityTools支持。而一些「比較」則很奇怪。當我們輕鬆支持java函數時,Velocity不需要與Java無關的函數。 – 2010-11-11 18:10:30
「冗長的比較」的鏈接已經失效 – domih 2015-12-09 09:13:42
它看起來像this是比較體面的破損。雖然,這是幾歲。
從文章:
總之
雙方的FreeMarker和Velocity是非常 能夠模板引擎。速度 似乎享有較大的用戶羣, 可能是由於它是 部分Apache項目。正如我在本文中顯示的 ,雖然, FreeMarker是更復雜的 和更快的兩個。在基本的 操作中,兩個模板引擎都是 幾乎相似,提供了一個易於理解的API。
Velocity和FreeMarker都是 很容易集成到 應用程序中,並在小模板上提供良好的性能 。在解析較大的模板時速度減慢 ,當您爲 項目選擇模板引擎時,您可能會考慮到 。
Freemarker無法在Android上運行。因此,我目前正在將我的項目轉換爲Velocity,以使其與移動設備兼容。
- 1. Velocity vs. FreeMarker
- 2. Freemarker/Velocity - 日期操作
- 3. Apache Velocity $ vs $!{}
- 4. Velocity vs Apache Tiles
- 5. Spring vs Struts + Freemarker
- 6. MS Velocity vs Memcached for Windows?
- 7. freemarker的功能VS宏
- 8. 爲什麼Spring有taglibs&velocity/freemarker宏?那不是反彈嗎?
- 9. 使用Velocity或FreeMarker創建電子郵件模板
- 10. Velocity或FreeMarker支持更好的國際化?
- 11. FreeMarker中的HTML語法高亮/ Intellij上的Velocity
- 12. Freemarker轉義freemarker
- 13. Liferay Freemarker變量列表
- 14. velocity(test instanceof)
- 15. Velocity $ fn docs
- 16. Memcached和Velocity
- 17. Apache Velocity + Servlet 3.0
- 18. Velocity中的「NoClassDefFoundError」
- 19. IntelliJ IDEA Velocity ResourceNotFoundException
- 20. Eclipse + Apache Velocity Engine?
- 21. Apache Velocity「主模板」?
- 22. 對於Velocity模板
- 23. Velocity Plugin for Hudson/Jenkins?
- 24. .velocity不是函數
- 25. Velocity模板格式
- 26. 用Velocity運行Tinytest
- 27. 乘法Velocity模板
- 28. Entity Framework 4和Velocity
- 29. Spring MVC + Hibernate Validator + Velocity
- 30. Body Adjustable Velocity AndEngine/Box2D
有人問,但這個人得到了更好的答案。 – Speck 2012-02-27 15:04:46