Velocity用户指南(中文版)(2)

王朝java/jsp·作者佚名  2006-01-30
窄屏简体版  字體: |||超大  

引用(References)

VTL有3种类型的引用:变量、属性和方法。作为一个设计者,必须和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和其它文本区分开)

(5)Quit引用符号:!

看下面的例子:

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

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

(6)特殊字符转义

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

#set( $email = "foo" )

$email

\$email

\\$email

\\\$email

输出结果是:

foo

$email

\foo

\$email

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航