たとえばテンプレート側でDate型の日付をSimpleDateFormat#formatしたいなーとかURLEncoder#encodeしたいときは普通にVelocityContextに突っ込んであげればいいみたい。

Java

VelocityContext context = ...;
context.put("URLEncoder", URLEncoder.class);
context.put("DateFormatter", new SimpleDateFormat(...));
context.put("Text", "ああああああ");
context.put("Date", new Date());
Template template = ...;
template.merge(context, response.getWriter());

Template

${URLEncoder.encode(${Text},"UTF-8")}
${DateFormatter.format(${Date})}

まさかこんな芸当が出来るなんて思ってなくてびっくり(特にURLEncoderの方)。でもこれってパフォーマンス的にどうなんだろ・・・と、思いつつ便利なので使ってしまう。

関連記事:
[GAE/J] Velocityを利用した時の文字化け対処メモ

関連性がある記事

Disqusでコメント