Velocity手册(2)【转】

VTL意味着提供最简单、最容易并且最整洁的方式合并页面动态内容。

VTL使用references来在web site内嵌套动态内容,一个变量就是一种类型的reference。变量是某种类型的refreence,它可以指向java代码中的定义,或者从当前 页面内定义的VTL statement得到值。下面是一个VTL statement的例子,它可以被嵌套到HTML代码中:

#set ( $a = “Velocity” )

和所有的VTL statement一样,这个statement以#字符开始并且包含一个directive:set。当一个在线用户请求你的页面时,Velocity Templating Engine将查询整个页面以便发现所有#字符,然后确定哪些是VTL statement,哪些不需要VTL作任何事情。

#字符后紧跟一个directive:set时,这个set directive使用一个表达式(使用括号封闭)——一个方程式分配一个值给变量。变量被列在左边,而它的值被列在右边,最后他们之间使用=号分割。

在上面的例子中,变量是$a,而它的值是Velocity。和其他的references一样以$字符开始,而值总是以双引号封闭。Velocity中仅有String可以被赋值给变量。

记住以下的规则:

使用$字符开始的references用于得到什么;使用#字符开始的directives用于作些什么。

Hello Velocity World!

一旦某个变量被分配了一个值,那么你就可以在HTML文件的任何地方引用它。在下面的例子中,一个值被分配给$foo变量,并在其后被引用。

<html>

<body>

#set ( $foo = “Velocity” )

Hello $foo World!

</body>

</html>

上面的实现结果是在页面上打印“Hello Velocity World!”

为了使包含VTL directives的statement更具有可读性,我们鼓励你在新行开始每个VTL statement,尽管你不是必须这么作。Set directive将在后面详细描述。

注释

单行注释:

## This is a single line comment.

多行注释:

#*

Thus begins a multi-line comment. Online visitors won’t

see this text because the Velocity Templating Engine will

ignore it.

*#

文档格式:

#**

This is a VTL comment block and

may be used to store such information

as the document author and versioning

information:

@version 5

@author

*#

References

在VTL中有三种类型的references:变量(variables)、属性 (properties)、方法(methods)。作为一个使用VTL的页面设计者,你和你的工程师必须就references的名称达成共识,以便你 可以在你的template中使用它们。

Everything coming to and from a reference被作为一个String对象处理。如果有一个对象$foo是一个Integer对象,那么Velocity将调用它的toString()方法将这个对象转型为String类型。

变量

格式要求同java。

属性

例子:

$customer.Address

$purchase.Total

$customer.Address有两种含义。它可以表示:查找hashtable对象 customer中以Address为关键字的值;也可以表示调用customer对象的getAddress()方法。当你的页面被请求 时,Velocity将确定以上两种方式选用那种,然后返回适当的值。

你可能感兴趣的:(html,Web,velocity)