velocity是一个非常好用的模板引擎
这里不对项目进行详细介绍,可以访问apache官方网站查看相关说明
下面我们通过一个简单的实例来讲解一下velocity的使用过程
// 创建引擎
VelocityEngine ve=new VelocityEngine();
//设置模板加载路径,这里设置的是class下
ve.setProperty(Velocity.RESOURCE_LOADER, "class");
ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
try {
//进行初始化操作
ve.init();
//加载模板,设定模板编码
Template t=ve.getTemplate("test/velocity/simple1.vm","gbk");
//设置初始化数据
VelocityContext context = new VelocityContext();
context.put("name", "张三");
context.put("project", "Jakarta");
//设置输出
StringWriter writer = new StringWriter();
//将环境数据转化输出
t.merge(context, writer);
//简化操作
//ve.mergeTemplate("test/velocity/simple1.vm", "gbk", context, writer );
System.out.println(writer.toString());
} catch (Exception e) {
e.printStackTrace();
}
这里需要注意的是Template t=ve.getTemplate("test/velocity/simple1.vm","gbk");
这里的gbk不是必须的,但是我的模板中使用了中文所以要指定编码规则。
其次是
ve.setProperty(Velocity.RESOURCE_LOADER, "class");
ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
很多人初次使用velocity的时候总是找不到模板,而改用绝对路径访问模板
就是因为没有设置模板存储的地址
也可以使用Velocity.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, loadpath);
loadpath是路径地址
simple1.vm
## 第一个例子
你好 $name !
$project project.
到目前为止一个简单单完整的velocity已经完成。