速度与Apache Tiles

时间:2011-02-11 08:05:01

标签: java spring-mvc content-management-system velocity tiles

什么更好? 我们将开始一个新的Web项目,这是一个选择哪种技术的问题。 项目包括Spring MVC + WebFlow。 在支持,扩展和绩效方面有任何好/坏经验吗?

谢谢。

5 个答案:

答案 0 :(得分:7)

你想如何比较Tiles和Velocity? - Tiles是一种组合页面片段的方法,而Veleocity是一个更完整的模板引擎,与JSP相比,可以比Tiles更好。

无论如何:我使用Spring MVC和Tiles和JSP:它工作得很好,节省了很多时间(仅仅使用JSP或者使用Sitemash的JSP),我没有注意到任何性能问题。 (但Web应用程序从未在高负载下使用过。)

答案 1 :(得分:7)

Velocity和Tiles是两种不同的野兽 - Tiles是一个布局引擎,而Velocity是一个模板引擎。它们在功能方面不会相互交叉。

从你的问题我猜你可能不会使用JSP。这是一个聪明的举动。 Velocity是那里的模板引擎之一,它做得非常出色。

如果您选择按照模板引擎路线查看视图,请查看commentit。这是我创建的一个小巧,简单,快速的布局引擎。它可能完全符合您的目的。

答案 2 :(得分:6)

如果你想在模板中加入一些单独的HTML文件,请使用 Tiles (即你有一个单独的页面,用于页眉,页脚,补充工具栏,你想要将它们组合在一起并以类似报纸的格式显示它们。

如果您想从Java后端引入动态内容并将这些值注入完整的HTML页面(即您拥有HTML,请使用 Velocity } table显示一系列Cars,并且所有汽车都存储在数据库中。使用JPA,您可以从数据库中获取Car数据,并将List<Car>保存在{ {1}} Bean,EJB或类似。然后,使用Velocity,您可以将该信息存储为Spring @Component中的存储区项目,并使用Map标记来引用到VTL中的键值项目,以便它们可以作为Map响应的一部分进行呈现。

为了实现上述目的,Velocity将自己定位为一个彻头彻尾的Front Controller Servlet,或由另一个MVC框架包装(即Spring MVC提供了一个View Resolver,它包含了Velocity Servlet提供的功能)。

HTML个请求通过HTML配置定向到Velocity Servlet或备用MVC框架Servlet。作为servlet响应的一部分,预先烘焙的web.xml视图(包含Velocity HTML标记)会使用VTL数据进行丰富。

有效地,总结:

Velocity 在与JSP相同的空间中竞争。

Tiles 更类似于网页转换。在PHP空间中,Smarty是一个受欢迎的堂兄。

你不要在它们之间做出选择,但很好地可以使用两者

答案 3 :(得分:2)

Tiles 2.2有一个Velocity插件,因此您可以同时使用 - 使用velocity,您将访问上下文并动态构建砖块,就像使用JSP一样,tile会将您的网站砖块组合在一起。然而,Tiles不允许做很多东西(至少我还没有发现它们),并且与例如Spring或JSF相比,它的文档非常陈旧。所以你可以考虑使用不同的技术。

我在我的当前项目中有Tiles引用,因为Roo为我做了,但是现在我将所有内容都移到了JSF。

答案 4 :(得分:1)

同时使用。 Tiles和Velocity非常好地集成并解决了不同的问题。你可以用Velocity的#include和#parse指令来做一些Tiles-ish的东西,但是Tiles可以更好地完成这些组合。