Velocity

  • 介绍

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。

当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。

Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。

Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当 作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

官网:http://velocity.apache.org/

下面是使用Velocity引擎(Engine)的Java代码:

  • 变量

#set($hao=$page.title)

  • 逻辑判断

#foreach($field in ${page.gridFieldList}) #if($field.primaryKey) key="true"#end  #end 这是foreach中的一个if判断

  • 运算

#set($hao=$page.title)

#set($len=$hao.length() - 1)

#if($hao.length()>1)$hao.substring(0, $len)#end

这里的减号前后必须要有空格才行

  • 字符串处理

$page.title.substring(1)

#if($page.title.length()>1)$page.title.substring(1)#end

  • 包含

#include被引入文件的内容将不会通过模板引擎解析,但是可以加入多个

#parse(“test.vm”)只能引入一个,会被解析

这里有个需要注意的地方是,不管通过include还是parse引入的模板文件中的宏都是不能被调用的

下面给出一个宏定义以及调用的代码片段:

Velocity默认情况下只能调用本模板中定义的宏。如果要使用外部定义的宏必须要将宏作为宏模板库加入到配置中,而且不需要显示地引入。下面是对宏模板库配置的一个代码片段:

这里要注意的是,在宏模板库中是无法调用宏的。

  • 参考

FreeMaker是另外一种常用的模板引擎。

Velocity快速指南

Velocity开发指南中文版

发表评论

电子邮件地址不会被公开。 必填项已用*标注