「Java」Velocityで同時に2つEngineインスタンスを初期化する
Javaコード:
import java.io.StringWriter;
import java.io.Writer;
import java.util.Properties;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
public class VelocityEngineTest {
private static final String TEMPLATE_NAME = “VelocityEngineTest.vm";
public static void main(String[] args) throws Exception {
Properties p1 = new Properties();
p1.put(“resource.loader", “file");
p1.put(“file.resource.loader.class",
“org.apache.velocity.runtime.resource.loader.FileResourceLoader");
p1.put(“file.resource.loader.path", “./src/ve1");
Properties p2 = new Properties();
p2.put(“resource.loader", “file");
p2.put(“file.resource.loader.class",
“org.apache.velocity.runtime.resource.loader.FileResourceLoader");
p2.put(“file.resource.loader.path", “./src/ve2");
//now create the engines
VelocityEngine ve1 = new VelocityEngine();
ve1.init(p1);
VelocityEngine ve2 = new VelocityEngine();
ve2.init(p2);
// now get the output for each engine
writeTemplateOutput(ve1);
writeTemplateOutput(ve2);
}
public static void writeTemplateOutput(VelocityEngine ve) throws Exception {
Template t = ve.getTemplate(TEMPLATE_NAME);
Writer writer = new StringWriter();
t.merge(new VelocityContext(), writer);
System.out.println(writer.toString());
}
}