Java/Velocity/Velocity Range

Материал из Java эксперт
Перейти к: навигация, поиск

For each loop controled by Range function

   <source lang="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.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);
 }

}


  1. foreach($number in [1..5])
         Current Index: $number
  1. end
      </source>
   
  
 
  



Range set

   <source lang="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();
   Writer writer = new StringWriter();
   t.merge(ctx, writer);
   System.out.println(writer);
 }

}


  1. set( $arr = [0..5] )
  2. foreach( $i in $arr )
  $i
  1. end
      </source>
   
  
 
  



Range with negative index

   <source lang="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();
   Writer writer = new StringWriter();
   t.merge(ctx, writer);
   System.out.println(writer);
 }

}


  1. foreach( $bar in [2..-2] )
 $bar
  1. end
      </source>
   
  
 
  



Render tool: length(), toString(), toLowerCase(), toUpperCase()

   <source lang="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.RenderTool; public class RenderToolExample {

 public static void main(String[] args) throws Exception {
   Velocity.init();
   Template t = Velocity.getTemplate("./src/renderTool.vm");
   VelocityContext ctx = new VelocityContext();
   ctx.put("render", new RenderTool());
   ctx.put("str", new String("The One Ring"));
   ctx.put("ctx", ctx);
   Writer writer = new StringWriter();
   t.merge(ctx, writer);
   System.out.println(writer);
 }

}


  1. set($methods = ["length()", "toString()", "toLowerCase()", "toUpperCase()"])
  2. set($name = "$str")
  3. foreach($method in $methods)
  $render.eval($ctx, "${name}.$method")
  1. end
      </source>