Velocity テンプレートから文章を作成する方法

Aipo で Velocity テンプレートから文章を作成する方法 では Aipo の中でのプログラムとなりますが、Aipo 以外の動作環境でやる方法は以下のようになります。

  public static String createTextFromTemplate(String vmname,
      Map<String, Object> putParams) {
    VelocityContext context = new VelocityContext();
    StringWriter out = new StringWriter();
    try {
        Properties p = new Properties();
        p.setProperty("resource.loader", "class");
        p
          .setProperty(
            "class.resource.loader.class",
            "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        p.setProperty("input.encoding", "UTF-8");
        Velocity.init(p);
        Template template = Velocity.getTemplate(vmname + ".vm", "utf-8");
        template.merge(context, out);
        out.flush();
      return  out.getBuffer().toString();
    } catch (Exception e) {
      return null;
    }
  }

この例の場合は Velocity テンプレートをリソースフォルダに配置してください。