Mega Code Archive

 
Categories / Java / Velocity
 

Define and use Macro

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.RenderTool; public class VMDemo {   public static void main(String[] args) throws Exception {     Velocity.init();     Template t = Velocity.getTemplate("./src/VMDemo.vm");     VelocityContext ctx = new VelocityContext();     Writer writer = new StringWriter();     t.merge(ctx, writer);     System.out.println(writer);   } } ------------------------------------------------------------------------------------- #macro (writeTable $productList)   #set ($rowCount = 1)         #foreach($product in $productList)         #if ($rowCount % 2 == 0)     #set ($bgcolor = "#FFFFFF")   #else     #set ($bgcolor = "#CCCCCC")           #end     <tr>       <td bgcolor="$bgcolor">$product</td>       <td bgcolor="$bgcolor">$product</td>     </tr>                 #set ($rowCount = $rowCount + 1)   #end #end #set ($products = ["one", "two", "three"]) <html>   <head>     <title>Title</title>   </head>   <body>     <table>       #writeTable($products)     </table>   </body> </html>                     velocity-Macro.zip( 875 k)