This Domain(Admin5.com) is for Sale:

Velocity用户手册---中文版

时间:2007-10-22  来源:不详  作者:林子

\\\\$email

\\\\\\$email

将render为:

foo

$email

\\foo

\\\\$email

如果email变量没有被定义则

$email

\\$email

\\\\$email

\\\\\\$email

将被render为:

$email

\\$email

\\\\$email

\\\\\\$email

注意:VTL中未被定义的变量将被认为是一个字符串,所以以下例子:

#set( $foo = “gibbous” )

$moon = $foo

的输出结果是:

$moon = gibbous

Case substitution

现在你已经对reference比较熟悉了,你可以将他们高效的应用于你的template了。Velocity利用了很多java规范以方便了设计人员的使用。例如:

$foo

$foo.getBar()

## is the same as

$foo.Bar

$data.getUser(“jon”)

## is the same as

$data.User(“jon”)

$data.getRequest().getServerName()

# is the same as

$data.Request.ServerName

## is the same as

${data.Request.ServerName}

但是,注意VTL中不会将reference解释为对象的实例变量。例如:$foo.Name将被解释为Foo对象的getName()方法,而不是Foo对象的Name实例变量。

Directives

Reference允许设计者使用动态的内容,而directive使得你可以应用java代码来控制你的显示逻辑,从而达到你所期望的显示效果。

#set

#set directive被用于设置一个reference的值。例如:

#set ( $primate = “monkey” )

#set ( $customer.Behavior = $primate )

赋值左侧的(LHS)必须是一个变量或者属性reference。右侧(RHS)可以是以下类型中一种:

l变量reference

lString literal

l属性reference

l方法reference

lnumber literal

lArrayList

下面是应用各种类型的RHS的例子:

#set ( $monkey = $bill ) ##变量reference

#set ( $monkey.Friend = “monica” ) ##String literal

#set ( $monkey.Blame = $whitehouse.Leak )##属性reference

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息