当前位置:首页 > 开发 > 开源软件 > 正文

Velocity Velocimacros

发表于: 2014-07-06   作者:aoyouzi   来源:转载   浏览次数:
摘要: Velocimacros #macro script element 允许模板设计者定义一段可重用的VTL template。例如: #macro ( d ) <tr><td></td></tr> #end 在上面的例子中Velocimacro 被定义为d,然后你就可以在任何VTL directive 中以如下 方式调用它: #d()

Velocimacros

#macro script element 允许模板设计者定义一段可重用的VTL template。例如:

#macro ( d )

<tr><td></td></tr>

#end

在上面的例子中Velocimacro 被定义为d,然后你就可以在任何VTL directive 中以如下

方式调用它:

#d()

当你的template 被调用时,Velocity 将用<tr><td></td></tr>替换为#d()。

每个Velocimacro 可以拥有任意数量的参数――甚至0 个参数,虽然定义时可以随意设置

参数数量,但是调用这个Velocimacro 时必须指定正确的参数。下面是一个拥有两个参数

的Velocimacro,一个参数是color 另一个参数是array:

#macro ( tablerows $color $somelist )

#foreach ( $something in $somelist )

<tr><td bgcolor=$color>$something</td</tr>

#end

#end

调用#tablerows Velocimacro:

#set ( $greatlakes = [ “Superior”, “Michigan”, “Huron”, “Erie”, “Ontario” ] )

#set ( $color = “blue” )

<table>

#tablerows( $color $greatlakes )

</table>

经过以上的调用将产生如下的显示结果:

<table>

<tr><td bgcolor=” blue”> Superior </td></tr>

<tr><td bgcolor=” blue”> Michigan </td></tr>

<tr><td bgcolor=” blue”> Huron </td></tr>

<tr><td bgcolor=” blue”> Erie </td></tr>

<tr><td bgcolor=” blue”> Ontario </td></tr>

</table>

Velocimacros 可以在Velocity 模板内实现行内定义(inline),也就意味着同一个web site

内的其他Velocity 模板不可以获得Velocimacros 的定义。定义一个可以被所有模板共享

的Velocimacro 显然是有很多好处的:它减少了在一大堆模板中重复定义的数量、节省了

工作时间、减少了出错的几率、保证了单点修改。

上面定义的#tablerows( $color $list )Velocimacro 被定义在一个Velocimacros 模板

库(在velocity.properties 中定义)里,所以这个macro 可以在任何规范的模板中被调用。

 

它可以被多次应用并且可以应用于不同的目的。例如下面的调用:

#set ( $parts = [ “volva”, “stipe”, “annulus”, “gills”, “pileus” ] )

#set ( $cellbgcol = “#CC00FF” )

<table>

#tablerows( $cellbgcol $parts )

</table>

上面VTL 将产生如下的输出:

<table>

<tr><td bgcolor=”#CC00FF”> volva </td</tr>

<tr><td bgcolor=”#CC00FF”> stipe </td</tr>

<tr><td bgcolor=”#CC00FF”> annulus </td</tr>

<tr><td bgcolor=”#CC00FF”> gills </td</tr>

<tr><td bgcolor=”#CC00FF”> pileus </td</tr>

</table>

 

 

Velocimacro 可以使用以下任何元素作为参数:

Velocity Velocimacros

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
(1)为什么要使用模版语言? 在服务器端可以使用 Velocity 处理模板和生成的动态内容(HTML、XML等
http://velocity.apache.org/tools/releases/1.3/generic/ http://velocity.apache.org/tools/devel/
Velocity是一个基于java的模板引擎。它允许任何人仅仅简单的使用模板语言来引用由java代码 定义的对
http://velocity.apache.org/tools/releases/1.3/generic/ http://velocity.apache.org/tools/devel/
1、不用说环境搭建,我是用SpringMVC + Velocity。当然是加入spring的jar和Velocity的jar。 2、Web.x
http://velocity.apache.org/tools/releases/1.3/generic/ http://velocity.apache.org/tools/devel/
今天在使用velocity模版引擎中的include时出现模版应用错误,觉的引用的路径没问题,但确实报错了,
脱离Servlet容器使用Velocity package com.tom.velocity; import java.io.InputStream; import java
脱离Servlet容器使用Velocity package com.tom.velocity; import java.io.InputStream; import java
脱离Servlet容器使用Velocity package com.tom.velocity; import java.io.InputStream; import java
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号