Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Velocity vs Apache Tiles_Java_Spring Mvc_Content Management System_Velocity_Tiles - Fatal编程技术网

Java Velocity vs Apache Tiles

Java Velocity vs Apache Tiles,java,spring-mvc,content-management-system,velocity,tiles,Java,Spring Mvc,Content Management System,Velocity,Tiles,什么更好? 我们将开始一个新的web项目,选择哪种技术是一个问题。 项目包括SpringMVC+WebFlow。 在支持、扩展和性能方面有什么好/坏的经验吗 谢谢。您希望如何将磁贴与Velocity进行比较?-Tiles是一种组合页面片段的方法,而Veleocity是一个更完整的模板引擎,与JSP相比,Tiles更具可比性 无论如何:我将SpringMVC与Tiles和JSP结合使用:它非常有效,节省了大量时间(仅用于使用JSP,或将JSP与Sitemash结合使用),而且我没有注意到任何性能问

什么更好? 我们将开始一个新的web项目,选择哪种技术是一个问题。 项目包括SpringMVC+WebFlow。 在支持、扩展和性能方面有什么好/坏的经验吗


谢谢。

您希望如何将磁贴与Velocity进行比较?-Tiles是一种组合页面片段的方法,而Veleocity是一个更完整的模板引擎,与JSP相比,Tiles更具可比性


无论如何:我将SpringMVC与Tiles和JSP结合使用:它非常有效,节省了大量时间(仅用于使用JSP,或将JSP与Sitemash结合使用),而且我没有注意到任何性能问题。(但web应用程序从未在高负载下使用。)

两者都使用。Tiles和Velocity集成得很好,可以解决不同的问题。你可以用Velocity的#include和#parse指令做一些Tiles-ish的事情,但是Tiles的合成效果更好。

Tiles 2.2有一个Velocity插件,所以你可以同时使用这两个插件-通过Velocity,你可以访问上下文并像JSP一样动态构建你的砖块,Tiles可以将你的网站砖块组合在一起。然而,Tiles不允许做很多事情(至少我还没有发现它们),它的文档与Spring或JSF文档相比非常陈旧和糟糕。所以你可以考虑使用不同的技术。


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

Velocity和Tiles是两个不同的野兽-Tiles是一个布局引擎,Velocity是一个模板引擎。就功能而言,它们在任何地方都不相交

从您的问题中,我可以猜到您可能不会使用JSP。这是明智之举。Velocity是模板引擎之一,它做得非常出色


如果您选择按照模板引擎路线进行查看,请签出。这是我创建的一个小型、简单、快速的布局引擎。如果你有一些单独的
HTML
文件,你想把它们放在一个模板中(例如,你有一个单独的页眉、页脚、侧边栏页面,你想把它们放在一起,并以类似报纸的格式显示它们),那么就使用Tiles

如果您想从
Java
后端引入动态内容,并将这些值注入完整的
HTML
页面,请使用Velocity(也就是说,你有一个
HTML
表来显示你选择的汽车,并且你所有的汽车都存储在一个数据库中。使用
JPA
,你可以从数据库中获取汽车数据,并将其保存在
EJB
Bean、
Spring@Component
或类似的
列表中。然后,使用Velocity,你可以将其存储在在
映射
中形成一个bucket项,并使用
VTL
标记引用
映射
中的键值项,以便它们可以作为
HTML
响应的一部分呈现

为了实现上述目标,Velocity将自身定位为一个完全前端控制器Servlet,或者由另一个MVC框架包装(即Spring MVC提供了一个视图解析器,它包装了Velocity Servlet提供的功能)

HTML
请求通过
web.xml
配置定向到Velocity Servlet或替代MVC框架Servlet。作为Servlet响应的一部分,您预烘焙的
HTML
视图(包括Velocity
VTL
标记)中包含了
Map
数据

总之,有效地:

Velocity与JSP在同一领域竞争

Tiles更类似于页面转换。在PHP领域,Smarty是一个受欢迎的表亲


您不能在它们之间进行选择,但可以两者兼用。

谢谢您的回答。我们应该选择如何渲染视图,这是最主要的。我还使用了Spring MVC+互动程序,效果很好。一个新项目即将推出,客户提出了速度建议。我所需要的只是一些关于为什么一种方法优于另一种方法的论证。如果客户nts是一种在应用程序发布后编辑网站视图而不打扰开发者的CMS吗?@StanislavL技术知识是最有力的论据之一。这对开发者来说是正确的,但对客户/维护者来说更重要。--如果客户非常了解某项技术,项目就可以完成这项技术,最好使用客户的最爱,因为对于软件开发人员来说,也要比客户容易得多。--无论如何:Velocity和JSP对lern来说并不难。对于这些工具的新手来说,可能正在阅读这个问题,也许值得一提的是JSF是一个组件sed MVC框架,以“Facelets”的形式提供自己的模板引擎和转换标记.相反,独立模板引擎更类似于基于请求的MVC框架,它们要么缺乏自己的视图功能,要么与视图技术无关。Tile和Velocity与Facelets在同一个空间竞争,因为Facelets同时满足这两种需求。