这个例子展示了如何在Java中使用Velocity生成一个页面。
Hello $name!
代码在上下文中设置变量。 上下文被传递给模板。 然后使用上下文处理渲染。
import static org.junit.Assert.assertEquals; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine; public class VelocitySimple { public static void main(String[] argv){ // Source directory String sourceDirectory = "V:/tmp/velocity/"; // Create the velocity engine VelocityEngine ve = new VelocityEngine(); ve.setProperty( "resource.loader", "file"); ve.setProperty( "file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader"); ve.setProperty( "file.resource.loader.path", sourceDirectory); ve.setProperty( "file.resource.loader.cache", true); ve.setProperty( "file.resource.loader.modificationCheckInterval", "2"); ve.init(); // Get the template Template t = ve.getTemplate( "example.vm" ); // Create the VelocityContext context = new VelocityContext(); context.put("name", "World"); try { // Create the output file Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream( new File( sourceDirectory + "example.txt" ) ), "UTF8") ); t.merge( context, out); out.close(); } catch ( Exception e ){ e.printStackTrace(); } } }
Hello World!
代码首先使用文件资源加载器初始化 VelocityEngine
。 它将加载器路径设置为调用模板的目录。 然后使用getTemplate方法从模板目录中获取模板。 在 VelocityContext
中设置一组变量,这里是name = World,上下文然后传递给合并方法,生成输出文件。 定义为$ name的变量在模板中被替换。