本例子是访问:D:\3.0_BCSHOP-3106\product\example.vm下模版
package com.bcgogo.product.model;
import org.apache.velocity.*;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.runtime.resource.loader.StringResourceLoader;
import org.apache.velocity.runtime.resource.util.StringResourceRepository;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Properties;
/**
* Created by IntelliJ IDEA.
* User: WWW
* Date: 12-9-3
* Time: 上午9:58
* To change this template use File | Settings | File Templates.
*/
public class Example {
public Example() {
try {
/*
* setup
*/
Properties p = new Properties();
p.setProperty("runtime.log", "velocity.log");
p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, "D:\\3.0_BCSHOP-3106\\product");
Velocity.init(p);
/*
* Make a context object and populate with the data. This
* is where the Velocity engine gets the data to resolve the
* references (ex. $list) in the template
*/
VelocityContext context = new VelocityContext();
context.put("list", getNames());
/*
* get the Template object. This is the parsed version of your
* template input file. Note that getTemplate() can throw
* ResourceNotFoundException : if it doesn't find the template
* ParseErrorException : if there is something wrong with the VTL
* Exception : if something else goes wrong (this is generally
* indicative of as serious problem...)
*/
Template template = null;
try {
template = Velocity.getTemplate("/example.vm");
} catch (ResourceNotFoundException rnfe) {
System.out.println("Example : error : cannot find template " );
} catch (ParseErrorException pee) {
System.out.println("Example : Syntax error in template " + ":" + pee);
}
/*
* Now have the template engine process your template using the
* data placed into the context. Think of it as a 'merge'
* of the template and the data to produce the output stream.
*/
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(System.out));
if (template != null)
template.merge(context, writer);
/*
* flush and cleanup
*/
writer.flush();
writer.close();
} catch (Exception e) {
System.out.println(e);
}
}
public ArrayList getNames() {
ArrayList list = new ArrayList();
list.add("ArrayList element 1");
list.add("ArrayList element 2");
list.add("ArrayList element 3");
list.add("ArrayList element 4");
return list;
}
public static void main(String[] args) {
Example t = new Example();
}
}