繁体   English   中英

速度与Apache Tiles

[英]Velocity vs Apache Tiles

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

谢谢。

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

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

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

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

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

如果你想在模板中加入一些单独的HTML文件,请使用Tiles (即你有一个Header,Footer,Sidebar的单独页面,你想把它们组合在一起并以类似报纸的格式显示它们)。

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

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

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

有效地,总结:

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM