月光疾风

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  62 随笔 :: 0 文章 :: 50 评论

随笔分类 - Velocity

摘要:引用的转义使用"\",指令的转义也是使用"\"。但是,指令的转义要比引用的转义复杂很多。例如:[代码]使用转义:[代码]此时,"\"和"#"结合,从而破坏了原本的#if(),而$foo作为判断条件,也不会被解析。所以上面这段代码,无论$foo是true还是false,结果都是如果使用两个"\":[代码]首先,#if前面的两个假定$foo是true,那么会输出"Go!",并且是紧跟在刚才的"\"后面... 阅读全文
posted @ 2010-11-23 20:38 月光疾风 阅读(5631) 评论(0) 推荐(0) 编辑

摘要:定义宏和使用宏#macro指令用于定义一个VTL模板的重复代码块——宏。下面是一个简单的定义宏的例子:[代码]这段代码定义了一个宏,名字为d,没有参数。下面是使用这个宏的代码:[代码]Velocity在遇到#d()的时候,会用"<tr><td></td></tr>"替代上面的#d()这一行。宏的参数:宏也可以带参数,而且是任意... 阅读全文
posted @ 2010-11-23 17:40 月光疾风 阅读(9527) 评论(0) 推荐(1) 编辑

摘要:#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT。这两者之间有一些区别。#Include被#Include引入的文件,其内容不会被Velocity引擎解析,所以这些文件应该是静态模板,即不含有VTL的模板。使用#Include()指令时,参数是被双引号括起来的文件名或者是表示文件名的变量。如果有多个文件,以逗号隔开即可。比如#I... 阅读全文
posted @ 2010-11-23 16:44 月光疾风 阅读(6119) 评论(0) 推荐(0) 编辑

摘要:首先是#foreach的简单示例:[代码]上面这个例子中,$allElems可以是一个Vector,一个HashTable,一个数组。在Velocity中,有一个变量$velocityCount用作循环计数,初始值是1。这个变量的名字和初始值是在velocity.properties文件里配置的。下面是更多的几个例子:[代码][代码] 阅读全文
posted @ 2010-11-23 15:35 月光疾风 阅读(41508) 评论(0) 推荐(3) 编辑

摘要:下面是#If指令的一个简单而完整的示例:#if指令用于判断某个条件是否为true。以上面的代码为例,当$foo < 10为true时,将会显示"Go North"。有时会看到这样一种写法:#if($foo) ... #end。这里充当判断条件的是一个变量$foo,它在两种情况下是true:一是$foo作为布尔值(Boolean)并且其值为true,二是$foo是一个非布尔值并且值不为null... 阅读全文
posted @ 2010-11-23 15:11 月光疾风 阅读(61157) 评论(6) 推荐(1) 编辑

摘要:引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容。指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等。而这个关键字,是可以被放在{}中间的。这是规范的写法,但是可能不好看。#set#set指令用于向一个变量或者属性赋值。其格式为 #set($foo="bar")或者#set($foo.bar=$test) 。LHS必须是一个变量或者属性,RHS必须... 阅读全文
posted @ 2010-11-23 11:43 月光疾风 阅读(21905) 评论(2) 推荐(2) 编辑

摘要:Velocity是大小写敏感的。但是为了减少使用者的错误,某些地方存在特殊情况。比如$foo.bar,首先会被检查是否能匹配$foo.getbar(),再被检查是否能匹配$foo.getBar()。而$foo.Bar,首先会被检查是否能匹配$foo.getBar(),再被检查是否能匹配$foo.getbar()。正如在《Velocity(2)——引用》所提到的那样,属性不会... 阅读全文
posted @ 2010-11-23 10:38 月光疾风 阅读(4187) 评论(0) 推荐(0) 编辑

摘要:货币符号:$是美元的符号,在文本中出现的"$2.5"这样的字符串,是不会被Velocity解释为一个变量或者一个属性的,因为2.5或者2或者5都不是一个VTL标识符。转义:假如需要在文本中最后显示"$foo"这四个字符组成的字符串本身,而非变量$foo的值,可以使用转义字符(\)。假定$foo已经定义过了,那么:[代码]假如$foo没有定义,那么:[代码] 阅读全文
posted @ 2010-11-23 09:16 月光疾风 阅读(6905) 评论(0) 推荐(1) 编辑

摘要:在Velocity Template Language(VTL)中,有三种类型的引用:变量,属性,方法。所有的引用都被看作是字符串,如果某个引用是一个整型值,velocity会调用它的toString()方法,将它转换为String。变量:变量是由$和紧跟其后的VTL标识符组成的。而VTL标识符必须以字母开头,后面可以包含并且仅能包含字母、数字、下划线以及减号。像$2.4这样的字符串,是不会被识别... 阅读全文
posted @ 2010-11-22 23:10 月光疾风 阅读(4618) 评论(0) 推荐(0) 编辑

摘要:Velocity的单行注释,使用##多行注释使用#*cooments*# 阅读全文
posted @ 2010-11-22 22:22 月光疾风 阅读(9853) 评论(0) 推荐(0) 编辑