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**也有类似的宏定义`#macro(name param1 param2) ... #end`,但功能相对有限。 5. **转义**: - **FreeMarker**内置了多种转义功能,比如HTML转义、XML转义等,可以通过简单的指令实现。 - **...
1. 在Spring MVC项目中添加对Velocity的支持,通过Maven配置velocity和velocitytools依赖。 2. 配置视图解析器(ViewResolver),指向存放模板文件的位置。 3. 在控制器(Controller)中创建数据模型,并返回对应的...
- **Struts**: Struts1支持Velocity作为视图技术,通过ActionForm对象向Velocity模板传递数据。 - **Hibernate**: 与ORM工具如Hibernate结合,可以从数据库动态生成报表或邮件内容。 6. **性能优化** - 缓存管理...
### Velocity 模板引擎知识点详解 #### 一、Velocity简介 Velocity是一款强大的基于Java的模板引擎,它允许用户通过一种简单且易于理解的模板语言来访问由Java代码定义的对象。Velocity的设计初衷是为了使得Web...
4. 利用Velocity提供的宏(macro)功能,可以创建可重用的代码片段,提高模板的复用性。 5. 调试和错误处理:使用Velocity的`#debug`指令可以帮助调试模板,查看变量的状态和执行流程。 ** 学习资源 ** 提供的...
2. **指令使用**: 常用的Velocity指令包括`#set`(设置变量)、`#if`(条件判断)、`#foreach`(循环)和`#macro`(定义宏)等。 3. **变量引用**: 变量引用通常以`$`开头,例如`$variable`。对于null或不存在的...
### 1. Velocity简介 Velocity是由Apache软件基金会开发的一个开源项目,它最初设计用于生成静态网站内容,但后来被广泛应用于各种Java应用中,如电子邮件模板、报告生成、XML文档构建等。Velocity的核心理念是...
1. **Velocity模板语言(VTL)基础** - VTL是Velocity的核心,它是一种简单但功能强大的模板语言,允许开发者将HTML和业务逻辑分离。 - VTL的关键元素包括变量($variable)、引用(#{reference})、指令(#if, #...
除了变量引用和控制结构,Velocity还提供了许多内置的模板指令,如`#set`用于设置变量,`#include`用于插入另一个模板,`#macro`定义宏等。 ### 6. 宏 宏是Velocity的一个强大特性,它可以封装重复使用的代码片段...
1. 获取 Velocity 库:在 Maven 项目中,添加以下依赖: ```xml <groupId>org.apache.velocity <artifactId>velocity-engine-core <version>2.3 ``` 2. 初始化 Velocity Context:Velocity 需要一个上下文...
手册中会详细介绍Velocity上下文(Context)、模板(Templates)、模板语言(Template Language)等核心概念,还有Velocity Engine的配置、宏库(Macro Library)的使用,以及与其他Java库如Spring的集成等高级主题。...
1. **配置Struts2**:在`struts.xml`配置文件中,需要指定`struts.velocity.toolboxlocation`常量,指向Velocity的工具箱配置文件,如`/WEB-INF/toolbox.xml`。 2. **配置Action结果**:在Action的配置中,设置`...
Velocity中还提供了宏(macro)机制,用于实现代码的重用。 注释 Velocity中可以使用##来注释代码。例如: ``` ## This is a comment ``` Velocity中还提供了其他注释方式,如/* */和<!-- -->。 关系和逻辑...
1. **模板文件**:Velocity模板文件通常以`.vm`为扩展名,其中包含静态文本和VTL指令。模板文件的主要任务是定义页面的布局和结构,通过引用数据模型中的变量来生成动态内容。 2. **#set指令**:这是Velocity中最...
#macro (sayHello $name) <p>Hello, $name! #end #sayHello("World") ``` 以上就是Velocity的基本语法和主要特性。掌握这些知识,你就可以开始编写高效且易于维护的Velocity模板了。请查阅官方文档以获取更深入的...
### Velocity 快速入门 #### 一、Velocity 概述 Velocity 是一款基于 Java 的模板引擎,它将模板设计和 Java 代码分离,使得前端页面的设计更加简洁且易于维护。Velocity 支持动态解析 Velocity 模板语言 (VTL),...
2. **指令**:Velocity提供了多种内置指令,如#include用于包含其他模板,#parse用于动态解析模板,#macro定义可重用的宏等。 3. **宏库**:宏是Velocity的一个强大特性,可以定义复用的模板片段,方便代码组织和...
1. **变量引用**:在Velocity模板中,变量通常用`${variable}`表示,如`${name}`。这会引用Java对象的属性或方法。 2. **指令控制**:Velocity提供了多种控制结构,如`#if`(条件判断)、`#foreach`(循环)、`#set...
- #macro:定义宏,可复用的代码块,如`#macro(name args) ... #end`,然后用`#name(args)`调用。 - #import:导入Java类或包,如`#import('java.util.*')`。 - #function:定义函数,类似于宏,但可以接受参数和...