「Java」Velocityのマクロ定義サンプル

1.VMDemo.java
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 VMDemo {

public static void main(String[] args) throws Exception {
Velocity.init();

Template t = Velocity.getTemplate(“./src/demo.vm");

VelocityContext ctx = new VelocityContext();
ctx.put(“var", new IteratorTool());

Writer writer = new StringWriter();
t.merge(ctx, writer);

System.out.println(writer);
}
}
2.demo.vm
#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
<tr><td bgcolor=$color>$something</td></tr>
#end
#end

#set( $greatlakes = [“Superior","Michigan","Huron","Erie","Ontario"] )
#set( $color = “blue" )
<table>
#tablerows( $color $greatlakes )
</table>

Development

Posted by arkgame