velocity是一个非常好用的模板引擎
这里不对项目进行详细介绍,可以访问apache官方网站查看相关说明
下面我们通过一个简单的实例来讲解一下velocity的使用过程
Java代码
// 创建引擎 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(); } // 创建引擎 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
Java代码
## 第一个例子 你好 $name ! $project project. ## 第一个例子你好 $name !$project project.
到目前为止一个简单单完整的velocity已经完成