2011-02-11 171 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是一位受欢迎的表亲。

你不选择它们,但很好可以使用