oinume journal

Scratchpad of what I learned

FreeMarkerで余計な改行が入らないようにする

JavaのテンプレートエンジンとしてFreeMarkerがある。テンプレートエンジンって割とみたいに書くことで余計な改行が入らないようになるじゃないですか。このFreeMarkerではどうするの?っていうのを同僚の人に教えてもらったので、ググれるようにまとめておく。

はじめに

やりたかったことは、DBのテーブル情報から下記のようなクラスを生成するためのテンプレートで(1)と(2)のところに改行を入れたくなかった、ということ。

最初のFreeMarkerのテンプレートファイルはこんな感じ。

改行を入れたくないところにコメントを入れることで回避

結論からいうと、FreeMarkerのコメントのタグ

<#-- -->

を改行を入れたくない部分に入れたら改行を削除することができた。

FreeMarkerの空白を削除するタグ

ちなみに、いろいろ調べてみてFreeMarkerには空白を削除するタグが幾つかあることがわかったが、改行だけでなく半角スペースやタブなども削除してしまうので今回のケースでは使えなかった。

最後に

HTMLを出力する場合はあまり改行は気にならないかもしれなけど、今回のようにJavaのソースとかを生成する場合は改行の制御がちゃんとできるテンプレートエンジンじゃないと辛いなぁと思った。結果としてやりたいことは実現できたから良かったけど。

 

現場で使えるJavaライブラリ

現場で使えるJavaライブラリ