什么更好? 我们将开始一个新的Web项目,这是一个选择哪种技术的问题。 项目包括Spring MVC + WebFlow。 在支持,扩展和绩效方面有任何好/坏经验吗?
谢谢。
答案 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可以更好地完成这些组合。