package com.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Properties;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
/**
* <b>Velocity demo</b> <br>
* (1) You need to download Velocity's jar from <a>http://velocity.apache.org/download.cgi</a><br>
* (2) This demo just show how to use Velocity base in local path.
*
* @author TianJun
* @Blog http://tianjun309.iteye.com
* @Email tj309@163.com
* @version 1.0 Aug 14, 2011
*/
public class Test
{
public static void main(String[] args)
throws FileNotFoundException, UnsupportedEncodingException
{
//(1) init VelocityEngine
Properties p = new Properties();
p.setProperty("file.resource.loader.path", Test.getAbsoluteProjectPath() + "/WebRoot/file/");
VelocityEngine ve = new VelocityEngine();
ve.init(p);
//(2) set Volocitycontext value
VelocityContext context = new VelocityContext();
context.put("value1", "test_value1");
context.put("value2", "test_value2");
PrintWriter writer = new PrintWriter(Test.getAbsoluteProjectPath() + "/WebRoot/file/document2.xml", "utf-8");
//(3) get Template file
Template t = ve.getTemplate("document.xml");
//(4) merge context with writer
t.merge(context, writer);
writer.flush();
writer.close();
}
/**
* project local path
*
* @return project local path
*/
public static String getAbsoluteProjectPath()
{
String path = null;
try
{
File file = new File(Thread.currentThread().getContextClassLoader().getResource("").getPath());
path =
URLDecoder.decode(file.getAbsolutePath(), "utf-8")
.replace("WebRoot\\WEB-INF\\classes", "")
.replace("\\", "/");
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
return path;
}
}