velocity第五个应用例子---获得当前迭代的索引



#foreach($key in $map.keySet())

   $velocityCount > $key : $map.get($key)

 #end

 $velocityCount获得当前迭代索引

 velocityCount变量名可以通过directive.foreach.counter.name属性修改,

       如:directive.foreach.counter.name=index,以后可以通过$index进行访问。

      迭代的索引默认从1开始,我们可以通过directive.foreach.inital.value=0进行修改。

 

         控台输出

 1> key4 : value4

 2> key3 : value3

 3> key2 : value2

 4> key1 : value1

 

 修改索引变量名

 在属性文件增加配置

 #修改索引变量名

 directive.foreach.counter.name=index

 index.vm

 

 #foreach($key in $map.keySet())

       $index  >>>  $key : $map.get($key)

 #end

 

 #修改迭代索引的默认值

  directive.foreach.counter.initial.value=0

                模板

 #foreach($key in $map.keySet())

  $index  >>>  $key : $map.get($key)

 #end

 

         控台输出




         0  >>> key4 : value4


   1  >>>  key3 : value3


   2  >>>  key2 : value2


3  >>> key1 : value1



//2 Create aContext object


VelocityContextcontext = new VelocityContext();


//3 Add you dataobjects to this context


Mapmap = new HashMap();


map.put("key1","value1");


map.put("key2","value2");


map.put("key3","value3");


map.put("key4","value4");


context.put("map",map);


//4 Choose atemplate


Templatetemplate = Velocity.getTemplate("index.vm");


//5 Merge thetemplate and you data to produce the output


StringWriter sw= new StringWriter();


template.merge(context,sw);


sw.flush();


System.out.println(sw.toString());


 


模板


#foreach($keyin $map.keySet())


    $velocityCount > $key : $map.get($key)


#end


 


 


=============


#foreach($keyin $map.keySet())


    $index >>>  $key :$map.get($key)


#end



你可能感兴趣的:(velocity)