#macro指令用于定义一个VTL模板的重复代码块——宏。下面是一个简单的定义宏的例子:
#macro( d ) #end |
这段代码定义了一个宏,名字为d,没有参数。下面是使用这个宏的代码:
#d() |
Velocity在遇到#d()的时候,会用”<tr><td></td></tr>”替代上面的#d()这一行。
宏的参数:
宏也可以带参数,而且是任意多个参数。不过,宏定义时有几个参数,宏调用时就要提供同样数目的参数。
#macro( d $name) $name #end |
使用:
#d("name1") |
宏的参数可以是以下VTL元素中的任意一种:引用、字符串字面值、数值字面值、整数范围(比如[1 .. 10]、[$start .. $end])、数组、布尔值true或者false。
内联的宏
当宏是在一个Velocity模板中定义时,这个宏(是inline的)只能被该模板使用,同一个网站下的其他模板是不能用的。如果是在一个Velocity宏模板库中定义的宏,就可以被任何同一网站下的模板使用。
其他一些注意点
宏必须在第一次使用它之前定义。当#Parse()一个模板文件时,尤其要注意这一点。
好的写法:
#macro(link $linkHref $linkId) <a href="$!linkHref"#if($linkId) id="$linkId"#end>$bodyContent</a> #end |
参考:
http://www.cnblogs.com/yuepeng/archive/2010/11/23/1885700.html
http://my.oschina.net/tinyframework/blog/221930
© admin for 可乐吧, 2016. |
Permalink |
One comment |
Add to
del.icio.us
Post tags: Macro, Velocity
您可能也喜欢: |
手机、笔记本电脑电池充电放电的正确方法 |
jQuery 1.8.3 发布 |
Native App、Web App 还是Hybrid App? |
Grunt:用于JS项目基于任务的命令行构建工具 |
无觅 |
Feed enhanced by Better Feed from Ozh