Java/Velocity/Velocity Range
Содержание
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); }
}
- foreach($number in [1..5])
Current Index: $number
- 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); }
}
- set( $arr = [0..5] )
- foreach( $i in $arr )
$i
- 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); }
}
- foreach( $bar in [2..-2] )
$bar
- 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); }
}
- set($methods = ["length()", "toString()", "toLowerCase()", "toUpperCase()"])
- set($name = "$str")
- foreach($method in $methods)
$render.eval($ctx, "${name}.$method")
- end
</source>