`
chenpingtai2008
  • 浏览: 58723 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Velocity 的macro(1)

阅读更多
Velocity 的macro(1)
macro
是Velocity中的宏,开始不怎么理解它的作用就在网上搜索了下,在百度中是没有什么收获,google下觉得这个宏其实就相当于函数一样,你定义好后只要调用他的名称就可以执行其内部的东西了,下面举例说明下:

功能:这里利用客户端代码进行测试,功能是显示由#macro体内部的信息。

1. 模版文件

#macro( d )   
<tr><td>1td>tr>  
#end   
#d()  

2. java代码

package com.lht.velocity;   
import java.io.StringWriter;   
import java.io.Writer;   
import org.apache.velocity.Template;   
import org.apache.velocity.VelocityContext;   
import org.apache.velocity.app.Velocity;   
import org.apache.velocity.tools.generic.IteratorTool;   
public class SimpleMacro {   
    public static void main(String[] args) throws Exception {   
        Velocity.init();   
  
        Template t = Velocity.getTemplate("macrodemo.vm");   
  
        VelocityContext ctx = new VelocityContext();   
        ctx.put("var", new IteratorTool());   
  
        Writer writer = new StringWriter();   
        t.merge(ctx, writer);   
  
        System.out.println(writer);   
      }   
}   

3. 输出结果 <tr><td>1td>tr>  

4. 说明
如果你调用#d多次那么这断代码将会被执行多次,这其实就类似于函数的调用。。
分享到:
评论

相关推荐

    Velocity 和 FreeMarker区别

    - **Velocity**也有类似的宏定义`#macro(name param1 param2) ... #end`,但功能相对有限。 5. **转义**: - **FreeMarker**内置了多种转义功能,比如HTML转义、XML转义等,可以通过简单的指令实现。 - **...

    velocity入门使用教程

    1. 在Spring MVC项目中添加对Velocity的支持,通过Maven配置velocity和velocitytools依赖。 2. 配置视图解析器(ViewResolver),指向存放模板文件的位置。 3. 在控制器(Controller)中创建数据模型,并返回对应的...

    velocity的学习资料

    - **Struts**: Struts1支持Velocity作为视图技术,通过ActionForm对象向Velocity模板传递数据。 - **Hibernate**: 与ORM工具如Hibernate结合,可以从数据库动态生成报表或邮件内容。 6. **性能优化** - 缓存管理...

    Velocity非常容易学会

    ### Velocity 模板引擎知识点详解 #### 一、Velocity简介 Velocity是一款强大的基于Java的模板引擎,它允许用户通过一种简单且易于理解的模板语言来访问由Java代码定义的对象。Velocity的设计初衷是为了使得Web...

    JAVA的Velocity语法学习

    4. 利用Velocity提供的宏(macro)功能,可以创建可重用的代码片段,提高模板的复用性。 5. 调试和错误处理:使用Velocity的`#debug`指令可以帮助调试模板,查看变量的状态和执行流程。 ** 学习资源 ** 提供的...

    velocity(eclipse插件)

    2. **指令使用**: 常用的Velocity指令包括`#set`(设置变量)、`#if`(条件判断)、`#foreach`(循环)和`#macro`(定义宏)等。 3. **变量引用**: 变量引用通常以`$`开头,例如`$variable`。对于null或不存在的...

    velocity中文

    ### 1. Velocity简介 Velocity是由Apache软件基金会开发的一个开源项目,它最初设计用于生成静态网站内容,但后来被广泛应用于各种Java应用中,如电子邮件模板、报告生成、XML文档构建等。Velocity的核心理念是...

    velocity 电子书

    1. **Velocity模板语言(VTL)基础** - VTL是Velocity的核心,它是一种简单但功能强大的模板语言,允许开发者将HTML和业务逻辑分离。 - VTL的关键元素包括变量($variable)、引用(#{reference})、指令(#if, #...

    Velocity脚本简明教程

    除了变量引用和控制结构,Velocity还提供了许多内置的模板指令,如`#set`用于设置变量,`#include`用于插入另一个模板,`#macro`定义宏等。 ### 6. 宏 宏是Velocity的一个强大特性,它可以封装重复使用的代码片段...

    velocity 简单实例

    1. 获取 Velocity 库:在 Maven 项目中,添加以下依赖: ```xml &lt;groupId&gt;org.apache.velocity &lt;artifactId&gt;velocity-engine-core &lt;version&gt;2.3 ``` 2. 初始化 Velocity Context:Velocity 需要一个上下文...

    velocity 入门文档及应用源码,很适合做自动代码生成

    手册中会详细介绍Velocity上下文(Context)、模板(Templates)、模板语言(Template Language)等核心概念,还有Velocity Engine的配置、宏库(Macro Library)的使用,以及与其他Java库如Spring的集成等高级主题。...

    Velocity语法以及整合struts2总结

    1. **配置Struts2**:在`struts.xml`配置文件中,需要指定`struts.velocity.toolboxlocation`常量,指向Velocity的工具箱配置文件,如`/WEB-INF/toolbox.xml`。 2. **配置Action结果**:在Action的配置中,设置`...

    velocity语法,涉及其常用规整

    Velocity中还提供了宏(macro)机制,用于实现代码的重用。 注释 Velocity中可以使用##来注释代码。例如: ``` ## This is a comment ``` Velocity中还提供了其他注释方式,如/* */和&lt;!-- --&gt;。 关系和逻辑...

    Velocity模板入门DEMO

    1. **模板文件**:Velocity模板文件通常以`.vm`为扩展名,其中包含静态文本和VTL指令。模板文件的主要任务是定义页面的布局和结构,通过引用数据模型中的变量来生成动态内容。 2. **#set指令**:这是Velocity中最...

    velocity文档及其详细语法

    #macro (sayHello $name) &lt;p&gt;Hello, $name! #end #sayHello("World") ``` 以上就是Velocity的基本语法和主要特性。掌握这些知识,你就可以开始编写高效且易于维护的Velocity模板了。请查阅官方文档以获取更深入的...

    Velocity10分钟了解

    ### Velocity 快速入门 #### 一、Velocity 概述 Velocity 是一款基于 Java 的模板引擎,它将模板设计和 Java 代码分离,使得前端页面的设计更加简洁且易于维护。Velocity 支持动态解析 Velocity 模板语言 (VTL),...

    apache velocity介绍及资料

    2. **指令**:Velocity提供了多种内置指令,如#include用于包含其他模板,#parse用于动态解析模板,#macro定义可重用的宏等。 3. **宏库**:宏是Velocity的一个强大特性,可以定义复用的模板片段,方便代码组织和...

    velocity document

    1. **变量引用**:在Velocity模板中,变量通常用`${variable}`表示,如`${name}`。这会引用Java对象的属性或方法。 2. **指令控制**:Velocity提供了多种控制结构,如`#if`(条件判断)、`#foreach`(循环)、`#set...

    Velocity模板应用案例

    - #macro:定义宏,可复用的代码块,如`#macro(name args) ... #end`,然后用`#name(args)`调用。 - #import:导入Java类或包,如`#import('java.util.*')`。 - #function:定义函数,类似于宏,但可以接受参数和...

Global site tag (gtag.js) - Google Analytics