一,前言
在编程中总会用到 “文本模板”+“数据” 来生成新的文本的情况。
最常用的就是 WebUI 在 HTML 文本中嵌入数据。除了 Web 应用中,还有些实用的方面,比如,自动返信。
Apache的Velocity能帮助我们解决这些问题。
二,环境与相关资料
#Velocity1.7 :http://velocity.apache.org/download.cgi
#VTL :http://www.jajakarta.org/velocity/velocity-1.2/docs/vtl-reference-guide.html
三,例程
#Jar列表
velocity-1.7.jar
velocity-1.7-dep.jar
package net.dncsoft.sample.velocity;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
public class MainVelocity {
public static void main(String[] args) throws IOException {
Velocity.init();
VelocityContext ctx = new VelocityContext();
ctx.put("title", "Hello Velocity");
List<String> list = new ArrayList<String>();
list.add("I am TianYu.");
list.add("Hello Java.");
list.add("Hello C#.");
ctx.put("items", list);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
Template template = Velocity.getTemplate("hello.vm");
template.merge(ctx, writer);
writer.flush();
}
}
$title #foreach($name in $items) $name #end