Velocity是一种基于java的模板引擎,它允许任何人使用简单而强大的模板语言来引用定义在java代码中的对象。你可能因为下面几种原因而使用Velocity:1,它很容易集成在各种各样的程序领域中。2,它为网页制作人员提供了一种清晰而又简单的语法。3,因为模板和代码是分离的,所以你可以分别独立的开发和维护它们。4,Velocity引擎可以很容易的集成到一些Java运行环境,特别是Servlet。5,Velocity使得模板可以访问任何环境对象中的共有方法。
但是Velocity没有达到FreeMarker能够做的许多任务,而且它的模板语言不是很强大。Freeer有高级render控制,高级空白字符移除以及内置的XML语法,可以在模板中使用JSP标记库。在2.3版本中,FreeMarker具有强大的新XML转换能力,使得替代XSLT成为可能。Velocity在这方面是无法真正竞争的,除非改进核心引擎,如支持宏库映射到名字空间,宏中支持局部变量。
Jsp比Velocity/Freeer处理逻辑的能力强,java语法人人都会;而Velocity/Freeer比Jsp简洁,不需要依赖web container。而Groovy Template,恰恰是两者优点的结合,当然它目前还未成熟。
Groovy 通过以下方式提供了一种敏捷的开发方式: 
1,不用编译。2,允许动态类型。3,合成结构容易。4,其脚本可以在普通 Java 应用程序中使用。5,提供一个shell解析器。

解决方案 »

  1.   

    groovy偶没用过,velocity现在已经大众化了,好处不用多说了吧?freemaker实际上就是个加强版的velocity,东西都差不多,没啥好讲的。
    至于jsp,是一个典型弱类型的脚本语言,功能实在强大,java完成的,jsp几乎都能胜任。也正是这样,在分层开发中,表现层很容易被介入过多的业务逻辑,导致程序臃肿庞大,脚本语言的出现,最简单的讲就是它没jsp强大,也正是这样,它限制了你在页面中使用太多的业务逻辑,因为它支持的语言本来就少,你想用太多也用不了。这就限制了你对表现层的发挥,强迫你只能去java中写代码。这就是最大的好处。此外,脚本语言没有第一次编译的问题,速度比jsp稍快。再者,脚本语言不需要servlet的API,这就表明它可以和servlet容器无关,你可以脱离web容器来运行你的程序,这是从程序的适应度方面的优点。什么时候使用?什么时候都可以用,就看你是否想用了,呵呵。只要有表现层的地方(确切的说是和html相关的),就可以采用脚本语言啊。