- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NVelocity语法
默认情况下,NVelocity解析是不分大小写的,当然可以通过设置runtime.strict.math=true,采用严格解析模式。
##指定用户名字
欢迎你: $customer.Name!
table
###输出用户喜好的MuD
#foreach( $mud in $mudsOnSpecial )
#if ( $customer.hasPurchased($mud) )
tr
td
$flogger.getPromo( $mud )
/td
/tr
#end
#end
/table
set 指示符使用一个表达式(expression) (包含在一对括号里) –将一个值 value (这里是Velocity)付给变量a,(变量名在左边,值在右边,用=组合起来).
以$开头的表示“引用”意思是取得一些东东.可引用变量,属性,方法
属性可以引用到对象的命令. Velocity会使用合适的策略选择引用到的命令. 它会根据协定的命令命令格式查找. 无论属性引用的的名字是否大小写,Velocity都有固定的查找规则.如在$customer.address引用时,查找顺序是:
getaddress()
getAddress()
get(address)
isAddress()
对于VTL中大写的属性名Address引用,将是:
getAddress()
getaddress()
get(Address)
isAddress()
正规引用格式
${mudSlinger}
1.Jack is a $vicemaniac.
2.Jack is a ${vice}maniac.
这样,Velocity就知你要的是 $vice, 而不是 $vicemaniac变量,正规引用格式一般用于在模板中直接调整字符串内容.
Quiet Reference Notation(静态引用输出)
Velocity遇到一个不能处理的引用时,一般他会直接输出这个引用$email的写法,页面上会看到的是$email,如下例,我们可以在$后面加上一个!号,那么就会输出空白:.
input type=text name=email value=$email/
input type=text name=email value=$!email/
正式的写法是:.
input type=text name=email value=$!{email}/
Getting literal( 语义问题)
velocity使用$,#字符来标志它的声明,但有时,HTML中因为某种其它意图,也会写出这样的字符
1.Currency(货币标志)
如美元 $2.50!这样的写法出现到模板中, VTL处理时是不会出错,会正确的输出$2.50!这个你想要的结果。为什么呢?一个合法的VTL标示符是以一个字母开头的
如下示,如果没有#set( $email = foo )这一行且java代码中Context对象中没有放放email对象,将直接输出$email.
#set( $email = foo )
$email
如果email己定义了 (比如它的值是 foo),而这里你却想输出 $email. 这样一个字符串,就需要使用转义字符”\”.
## The following line defines $email in this template:
#set( $email = foo )
$email
\$email
\\$email
\\\$email
上面的模板在web页面上的输出将是:
foo
$email
\foo
\$email
但如果email并没有定义,我们这样写:.
$email
\$email
\\$email
\\\$email
输出就原封不动了:
$email
\$email
\\$email
\\\$email
注意:当己定义变量和未定义变量一起输出时,会输出字面意思,如下便,$moon是未定义的:
#set( $foo = gibbous )
$moon = $foo
输出到web页面中将是
$moon = gibbou
Case Substitution(可选的格式)
$foo.getBar()
## 等同于
$foo.Bar
$data.setUser(jon)
##等同于
#set( $data.User = jon )
$data.getRequest().getServerName()
##等同于
$data.Request.ServerName
## is the same as
${data.Request.
文档评论(0)