`

Velocity Velocimacros

阅读更多

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用户手册.doc

    7. **Velocimacros** 是可重用的宏,可以简化模板编写,提高效率。 Velocity 还提供了对字符串、数值、范围操作的支持,以及对特殊字符的转义机制,确保模板的安全性和正确性。例如,货币符号和 VTL 引用的转义,...

    velocity中文指南

    【Velocity中文指南】是针对Java开发者的文档,旨在介绍Velocity模板语言(VTL),帮助页面设计者和内容提供者理解并使用Velocity进行动态内容嵌入。Velocity是一个基于Java的模板引擎,它的核心功能是将Java代码与...

    Velocity代码生成工具

    - **Velocimacros**:自定义的宏命令。 **4. 其他特性:** - **Escaping**:处理模板中的特殊字符。 - **Formatting Issues**:格式化问题处理。 - **Advanced Issues**:高级问题解决方法。 #### 四、如何使用...

    Apache Velocity - Velocity User Guide

    - **Velocimacro(Velocimacros)**:创建可重用的代码块。 #### 十、获取字面量(Getting literal) - **货币(Currency)**:格式化货币值。 - **有效 VTL 引用的转义(Escaping Valid VTL References)**:如何...

    velocity中文资料以及实例详解

    10. `Velocimacros`:宏是可重用的模板片段,可以提高代码复用和效率。 在实际使用中, Velocity 还提供了以下特性: - `Escaping`:用于防止VTL参考或指令的误触发,例如,`\$` 和 `##` 分别用于转义变量和注释。...

    掌握Apache Velocity

    ### 知识点十:Velocimacros - **参数传递**: 如何定义和传递参数给宏。 - **嵌套和递归**: 如何在宏中使用嵌套结构和递归调用来处理复杂的逻辑。 ### 知识点十一:Velocity的控制讨论 - **初始化运行时配置**: ...

    velocity的使用

    11. **Velocimacros(宏调用)**:宏是可重用的模板片段,可以接受参数,提高代码复用。 12. **Escaping(转义)**:用于处理特殊字符和VTL引用,例如`\$`用于输出美元符号 `$`。 13. **Case Substitution(可选的格式)...

    velocity使用指南

    11. **宏 Velocimacros** - 定义可重用的模板片段,类似于函数。 12. **Escaping** - 提供转义机制,避免 VTL 控制指令在输出中被执行。 13. **数学运算 Math** - 支持基本的数学运算。 14. **范围操作符 Range ...

    Velocity用户手册中文版

    如 Set、代码段(Literals)、If/ElseIf/Else 条件语句、Foreach 循环、包含(Include)、解析(Parse)、中断(Break)、停止(Stop)、计算(Evaluate)、定义(Define)和宏调用(Velocimacros)等。 - 获取代码...

    Velocity使用指南 删除掉多余表格

    By separating Java code from web pages, Velocity ensures easier maintenance of the site throughout its lifecycle. This offers a more vibrant alternative to JSP and PHP, fostering a cleaner separation...

    velocity学习笔记

    - **Velocimacros**:宏调用,允许定义和使用自定义的模板函数。 ### 示例:Mud Store Example 在在线泥巴商店示例中,Velocity可以帮助为每个登录的客户提供个性化页面。当客户登录后,Velocity模板可以动态地...

    velocity简明手册

    12. **宏(Velocimacros)**:类似于函数,可以定义并重复使用。如`#macro( d )&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;#end`,然后用`#d()`调用。 13. **带参数的宏**:宏可以接受参数,如`#macro(tablerows $color $somelist)`,并在...

    NVelocity语法 java or c#

    你可以注册自定义的Velocimacros(宏)或Velocity事件处理程序,以扩展NVelocity的功能。 在C#环境中,NVelocity通常通过NuGet包引入,如`NVelocity.App`,然后使用`VelocityEngine`类加载模板并进行渲染。在ASP...

Global site tag (gtag.js) - Google Analytics