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多次那么这断代码将会被执行多次,这其实就类似于函数的调用。。