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