Velocity テンプレートは主に HTML を作成する際に利用していますが、メールなどの文章をテンプレート化したい場合などに利用することもできます。
public static String createTextFromTemplate(String vmPath, Map<String, Object> putParams) { StringWriter out = null; try { VelocityService service = (VelocityService) ((TurbineServices) TurbineServices.getInstance()) .getService(VelocityService.SERVICE_NAME); Context context = service.getContext(); Iterator<Entry<String, Object>> iterator = putParams.entrySet().iterator(); while (iterator.hasNext()) { Entry<String, Object> next = iterator.next(); context.put(next.getKey(), next.getValue()); } out = new StringWriter(); service.handleRequest(context, vmPath, out); out.flush(); return out.toString(); } catch (Exception e) { logger.error(e.getMessage(), e); return null; } finally { if (out != null) { try { out.close(); } catch (IOException e) { // ignore } } } }
一つ目の引数に Velocity テンプレートへのパス、二つ目の引数にテンプレートに受け渡したいパラメータを指定します。
この方法で String の文字列として Velocity の出力結果を受け取ることができるようになります。