IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Velocity Macro(宏)

    admin发表于 2016-08-10 06:33:44
    love 0

    定义宏和使用宏

    #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



沪ICP备19023445号-2号
友情链接