北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

Velocity

TEXT形式で結果を出力しているプログラムを、html形式に直して欲しいと言う依頼を受けました。普通にprintln()でやるとつまんない*1上に改修に弱くなってしまうので、google先生に聞いてみたところ、Velocityなるものを発見。VTL(Velocity Template Language)にはループ、分岐があり、BeanUtils風な記法でネストしたプロパティまで簡単に表示に使えます。こりゃあ便利。

ただ、ちょっとアレレな部分もあって、メソッドがthrows Exceptionだったり、propertiesファイルにoutput.encodingが設定出来るのに出力メソッドに渡すのはWriterだったり。前者はテンプレート処理中に呼び出すメソッドからどんな例外が飛び出すかわからないからって理由な気がしますし、後者はServlet用だって気はするけど、コーディングしてみるとなんだかなーって感じです。

まあでも、今後のバージョンでは変わって来るかもしれないし、複雑なテキストを生成する必要がある場合は選択肢に入れといた方がいいライブラリだと思います。

*1: 職業プログラマならprintln()で済ませるべきでしょう( ̄m ̄〃)