Velocity模版引擎的小例子(带绝对路径的)

本例子是访问:D:\3.0_BCSHOP-3106\product\example.vm下模版




package com.bcgogo.product.model;

import org.apache.velocity.*;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.runtime.resource.loader.StringResourceLoader;
import org.apache.velocity.runtime.resource.util.StringResourceRepository;

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Properties;

/**
 * Created by IntelliJ IDEA.
 * User: WWW
 * Date: 12-9-3
 * Time: 上午9:58
 * To change this template use File | Settings | File Templates.
 */
public class Example {
  public Example() {
    try {
      /*
      * setup
      */
      Properties p = new Properties();
      p.setProperty("runtime.log", "velocity.log");
        p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, "D:\\3.0_BCSHOP-3106\\product");
      Velocity.init(p);
      /*
      *  Make a context object and populate with the data.  This
      *  is where the Velocity engine gets the data to resolve the
      *  references (ex. $list) in the template
      */
      VelocityContext context = new VelocityContext();
      context.put("list", getNames());
      /*
      *  get the Template object.  This is the parsed version of your
      *  template input file.  Note that getTemplate() can throw
      *   ResourceNotFoundException : if it doesn't find the template
      *   ParseErrorException : if there is something wrong with the VTL
      *   Exception : if something else goes wrong (this is generally
      *        indicative of as serious problem...)
      */
      Template template = null;
      try {
        template = Velocity.getTemplate("/example.vm");
      } catch (ResourceNotFoundException rnfe) {
        System.out.println("Example : error : cannot find template "  );
      } catch (ParseErrorException pee) {
        System.out.println("Example : Syntax error in template " + ":" + pee);
      }

      /*
      *  Now have the template engine process your template using the
      *  data placed into the context.  Think of it as a  'merge'
      *  of the template and the data to produce the output stream.
      */

      BufferedWriter writer = new BufferedWriter(
          new OutputStreamWriter(System.out));

      if (template != null)
        template.merge(context, writer);

      /*
      *  flush and cleanup
      */

      writer.flush();
      writer.close();
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public ArrayList getNames() {
    ArrayList list = new ArrayList();

    list.add("ArrayList element 1");
    list.add("ArrayList element 2");
    list.add("ArrayList element 3");
    list.add("ArrayList element 4");

    return list;
  }

  public static void main(String[] args) {
    Example t = new Example();
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值