VTL意味着提供最简单、最容易并且最整洁 的方式合并页面动态内容。VTL 使用references在website内嵌套动态内容,一个变量就是一种类型的reference。变量是某种 类型的refreence,它可以指向java代码中的定义,或者从当前页面内定义的VTLstatement得到值。下面是一个 VTLstatement的例子,它可以被嵌套到HTML代码中:
#set($a="Velocity")
和所有的VTL statement一样,这个statement以#字符开始并且包含一个set指令。当一个 在线用户请求你的页面 时,Velocity 模板引擎将查询整个页面以便发现所有#字符,然后确定哪些是VTL statement,哪些不需要VTL作任何事情。
#字符后紧跟一个 指令:set 时,这个 set directive 使用一个表达式(使用括号封闭)―― 一个方程式分配一个值给变量。变量被列在左边,而它的值被列在右边,最后他们之间使用=号分割。
在 上面的例子中,变量是$a,而它的值是Velocity,和其他的references一样以$字符开始,而值总是以双引号封闭。Velocity中仅有 String可以被赋值给变量。使用$字符开始的references用于得到什么,使用#字符开始的directives用于作些什么。在上面的例子 中,#set是分配一个值给变量,变量$a在模板中输出 "Velocity"。
"引用"以$开头,是取得一些东东;而"指示"(Directives)则以#开头,有点"做些什么动作"的意思。
一旦某个变量被分配了一个值,那么你就可以在HTML文件的任何地方引用它。在下面的例子中,一个值被分配给$foo变量,并在其后引用。
<html> <body> #set($foo="Velocity") Hello $foo World! </body> <html>
上面的实现结果是在页面上打印“Hello Velocity World!”。
为了使包含VTL directives的statement更具有可读性,我们鼓励你在新行开始每个VTL statement,尽管不是必须这么作。Set的用法将在后面详细描述。
注释是那些描述文本不出现在模板引擎输出里面。注释一个主要用处是提醒自己和解释出现在VTL中的声明,或是其他用途。下面是一个在VLT中的注释例子。
## This is a single line comment.
单行注释以##开始,结束在这行的结尾。如果你要写几行注释,这没有必要写几个单行注释,多行注释,以#*开始*#结束,可以解决这个问题。
This is text that is outside the multi­linecomment.Online visitors can see it. #* Thus begins a multi­line comment. Onlinevisitors won't see this text because the VelocityTemplating Engine will ignore it. *# Here is text outside the multi­linecomment; it is visible.
这里有几个例子关于单行和多行注释如何工作。
This text is visible. ## This text is not. This text is visible. This text is visible. #* This text, as partof a multi­line comment, is not visible. This text is not visible;it is also part of the multi­line comment. This text still notvisible. *# This text is outside the comment, so it is visible. ## This text is not visible.
这里有第三种类型的注释,VLT 注释块,可能用于存放文档的作者名称和版本信息。
#** This is a VTL comment block andmay be usedto store such information as the document author andversioninginformation: @author @version 5 *#