Velocity用户指南(一)

Velocity用户指南(一)

 

什么是Velocity

 

Velocity是基于Java的模板引擎。它允许Web页面开发者引用Java代码中定义的方法。Web设计者可以和Java程序开发者并行开发遵循MVC模式的Web站点。这意味着,Web设计者可以将精力放在好的Web站点设计上,而Java程序开发者可以将精力放在编写代码上。VelocityJava代码从Web页面中分离,使Web站点更具长期可维护性,并提供了一种替代JSPPHP的方案。

 

 

 

VTL(Velocity Template Language)介绍

 

VTL提供一种简单、容易和干静的方法将动态内容合并到Web页面。VTL使用引用(references)将动态内容插入到Web页面中。变量是一种引用,可以指向Java代码中的定义内容,或者由Web页面中的VTL语句来获得值。下面是一个可以插入到HTML文档的VTL语句的例子:

 

#set( $a = "Velocity" )

 

VTL语句以#开头,并包含指令(set)。变量以$开头,用引号引起。引号可以是单引号,也可以是双引号。前者引用具体的String值;后者可以包含Velocity引用,例如”hello, $name” $name会用其当前的值替换。上面的例子是将值Velocity赋值给变量a

 

当变量被赋值后,就可以在HTML文档的任何地方引用,下面是Hello Velocity World!的例子:

 

 

 

#set( $foo = "Velocity" )

 

Hello $foo World!

 

 

 

 

 

注释

 

VTL支持单行注释(以##开始)和多行注释(包括在#**#之间),下面是一个例子:

 

This text is visible. ## This text is not visible.

 

This text is visible.

 

This text is visible. #* This text, as part of a multi-line comment,

 

is not visible. This text is not visible; it is also part of the

 

multi-line comment. This text still not visible. *# This text is outside

 

the comment, so it is visible.

 

## This text is not visible.

 

 

 

引用

 

VTL3种类型的引用:变量、属性和方法。作为一个设计者,必须和Java工程师在VTL引用的名称(标识符)上一致,以便在模板中使用它们。引用是作为String对象处理的。

 

1)变量

 

变量的格式:$VTL标识符

 

VTL标识符以字母开始,由字母、数字、横划线(-)或下划线(_)组成。变量或者从模板中的set指令获得值(如前面的例子),或者Java代码(同名变量)中获得值。Velocity只处理已定义的变量引用,对于没有定义的变量引用,Velocity原样返回。例如下面的例子:

 

#set( $foo = "gibbous" )

 

$moon = $foo

 

输出结果是:$moon = gibbous

 

2)属性

 

属性的格式:$VTL标识符. VTL标识符

 

下面是属性引用的例子:

 

$customer.Address

 

$purchase.Total

 

拿第一例子来说,有两种意思:

 

l         返回Hashtable对象customer中键值为Address的值

 

l         $customer.getAddress()方法引用的缩写(JavaBean属性的getter方法)

 

至于是哪种情况,Velocity会做决定,返回合适的值。

 

3)方法

 

方法的格式:$VTL标识符(参数列表)

 

下面是方法引用的例子:

 

$customer.getAddress()

 

$purchase.getTotal()

 

$page.setTitle( "My Home Page" )

 

$person.setAttributes( ["Strange", "Weird", "Excited"] )

 

前面两个例子可以缩写成属性引用(如属性引用的例子)。属性引用和方法引用的主要区别是方法引用可以指定参数列表。

 

4)正式引用符号:{}

 

正式引用符号在使用变量引用含糊的地方进行区分。看下面的例子:

 

#set( $vice = "klepto" )

 

Jack is a $vicemaniac.

 

输出结果是:Jack is a $vicemaniac.$vicemaniac没有定义,原样输出)

 

#set( $vice = "klepto" )

 

Jack is a ${vice}maniac.

 

输出结果是:Jack is a kleptomaniac.(使用正式引用符号将$vice和其它文本区分开)

 

5Quit引用符号:!

 

看下面的例子:

 

 

初始时,$email没有值,所以文本框中会显示值$email,而更希望是空白。下面是使用Quit引用符号的例子:

 

 

$email没有值时,Velocity会用空串替代$email

 

6)特殊字符转义

 

对于$#等特殊字符要正常显示,可以使用/进行转义,//转义为/。下面是一个例子:

 

#set( $email = "foo" )

 

$email

 

/$email

 

//$email

 

///$email

 

输出结果是:

 

foo

 

$email

 

/foo

/$email

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值