Velocity模板语言(VTL)语法使用

Velocity模板语言 (VTL)提供了容易,简单,和清洁方式合并动态内容在你的网页上。即使一个网页开发者有少量或者没有编程经验也能很快有能力使用VTL嵌入动态内容到你的Web页面。

一、引用

在VTL中有三种类型的引用: 变量,属性和方法。作为一个使用VTL的设计者, 你和工程师必须一起在你的模板中,指定名字以及它所代表的引用。

1. 变量

VTL中变量标识符前面需要添加 “$” 来进行标记. AVTL标识符必须以字母 (a .. z or A .. Z)开始. 其他的字符可以使用下面几种:

  • alphabetic (a .. z, A .. Z)
  • numeric (0 .. 9)
  • hyphen (“-“)
  • underscore (“_”)

1.1变量的定义

#set($name =“velocity”)

等号后面的字符串 Velocity 引擎将重新解析,例如出现以$开始的字符串时,将做变量的替换。

#set($hello =“hello $name”)

上面的这个等式将会给 $hello 赋值为“hello velocity”

1.2 变量的使用

在模板文件中使用$name 或者 ${name} 来使用定义的变量。推荐使用 ${name} 这种格式,因为在模板中同时可能定义了类似$name 和 $names 的两个变量,如果不选用大括号的话,引擎就没有办法正确识别 $names 这个变量。

#set($name =“ricky”)
Welcome $name to velocity\.com

输出结果为:Welcome ricky to velocity.com

2.属性

$customer.Address

3.方法

$customer.getAddress()
$data.get("key")  若data为Map,代表取对应key的value

4.静态引用标识符

当Velocity遇到一个没有定义的引用时,则原样输出

$!{var}:如果有值则输出,如果为空,则不显示;

${var}:如果有值则输出,如果为空,则将该代码原样输出;

二、循环

在 Velocity 中循环语句的语法结构如下:

#foreach($element in $list)
This is $element
$velocityCount

#end

Velocity 引擎会将 list 中的值循环赋给 element 变量,同时会创建一个 $velocityCount 的变量作为计数,从 1 开始,每次循环都会加 1.

三、条件语句

条件语句的语法如下:

#if(condition)

#elseif(condition)

#else

#end

四、关系操作符

Velocity 引擎提供了 AND、OR 和 NOT 操作符,分别对应&&、||和! 例如:

#if($foo && $bar)
#end

五、宏

Velocity 中的宏可以理解为函数定义。定义的语法如下:

#macro(macroName arg1 arg2 …)
#end

调用这个宏的语法是:

#macroName(arg1 arg2 …)

这里的参数之间使用空格隔开,下面是定义和使用 Velocity 宏的例子:

#macro(sayHello $name)
hello $name
#end

#sayHello(“velocity”)

输出的结果为:hello velocity

六、#parse 和 #include

parse 和 #include 指令的功能都是在外部引用文件,而两者的区别是:#parse 会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include 是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。分别看以下例子:

foo.vm 文件:

#set($name =“velocity”)

parse.vm:

#parse(“foo.vm”)

输出结果为:velocity include.vm:

#include(“foo.vm”)

输出结果为:#set($name =“velocity”)

results matching ""

    No results matching ""