How to use foreach loop in velocity

This Example shows you how to use foreach loop in velocity template.

How to use foreach loop in velocity

How to use foreach loop in velocity

     

This Example shows you how to use foreach loop in velocity  template. The method used in this example are described below:- 

1:- Initialize velocity run time engine through method  init().
2:- Create object of VelocityContext Class.
3:- Create Template class object, Template  class object is used for controlling template methods and properties.

template.merge(context, writer): Merge method of the Template class is used here for merging  the VelocityContext class object to produce the output. Template  class object is used for controlling template methods and properties.

#set($list = ["A", "B", "C", "D", "E"]): This is a statement named set it generally begins with # character. Here we have assign the list with character $. 

#foreach($item in $list): This works like for loop in java but it has some enhanced functionality. In for loop you can initialize variable, condition check and then increment the variables but  in foreach loop no need to initialize or increment. In for loop user must know the limit of the loop but with foreach loop no need to know that limit.

 

Loop.java

import java.io.*;

import org.apache.velocity.*;
import org.apache.velocity.app.*;
import org.apache.velocity.tools.generic.IteratorTool;

public class Loop {

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

  Template template = Velocity.getTemplate("./src/loop.vm");

  VelocityContext context = new VelocityContext();
  context.put("var"new Loop());

  Writer writer = new StringWriter();
  template.merge(context, writer);

  System.out.println(writer);
  }
}

loop.vm
#set($list = ["A", "B", "C", "D", "E"])

#foreach($item in $list)
 $item
#end

Output:
A
B
C
D
E

Download code