velocity是一個(gè)基于java的模板引擎,與freemarker齊名,下面寫一個(gè)velocity的hello world的demo。
1、maven依賴
<properties>
<velocity.version>1.7</velocity.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>${velocity.version}</version>
</dependency>
</dependencies>
2、代碼
package com.mipo;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
public class T {
public static void main(String[] args) {
// 初始化模板引擎
VelocityEngine velocityEngine = new VelocityEngine();
velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
velocityEngine.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
velocityEngine.init();
// 獲取模板文件
Template template = velocityEngine.getTemplate("helloworld.vm");
// 設(shè)置變量
VelocityContext velocityContext = new VelocityContext();
velocityContext.put("name", "world");
List<String> list = new ArrayList<String>();
list.add("jack");
list.add("kitty");
velocityContext.put("list", list);
// 輸出
StringWriter stringWriter = new StringWriter();
template.merge(velocityContext, stringWriter);
System.out.println(stringWriter.toString());
}
}
首先,我們在代碼中初始化了VelocityEngine這個(gè)模板引擎,對其設(shè)置參數(shù)進(jìn)行初始化,指定使用ClasspathResourceLoader來加載vm文件。然后我們就可以往VelocityContext這個(gè)Velocity容器中存放對象了,在vm文件中我們可以取出這些變量,從而進(jìn)行模板輸出。
3、輸出
hello world
jack
kitty
hello world
jack
kitty