Javaで使えるHTMLテンプレートの最高傑作:Thymelieaf
JavaでWeb開発っていうと昔ながらのJSPやらServletやらがまだまだ蔓延ってますけど、時代は進化してますね。
ここ最近一番感動したのがHTMLテンプレートライブラリのTymeleafです。
Tymeleafのもっとも素晴らしいところは、”HTML(XML)の標準に乗っ取ったテンプレートが書ける”ってところだと思ってます。
これが一番効果を発揮するのが、デザインが固まっていない状態でのプロト開発とかですね。
フロントがコロコロ変わるようなとき、デザインが変わるたびに、モックのHTMLからJSPを起こしなおす、とか地獄みたいに嫌な作業の一つですよね。
Thymeleafなら、HTMLのタグにth:で始まる属性を埋め込むだけで、バック側から渡したbeanの値にアクセスできます。
例えば、inputタグにth:value="${変数名}"とかって追加すると、beanの変数でvalue値が埋め込まれます。
テンプレートHTMLをそのままブラウザで表示した場合でも、th属性は無視されるだけなので普通に表示できます。JSPなら…お察しですよね。
p要素とかspan要素にもth:textタグで変数を表示できますし、th:ifやらth:eachで条件分岐や繰り返しも処理できます。
th:attrとかっていう属性をなんでもいじれちゃう構文もあるので、jqueryと組み合わせればできることは無限大ですね。
Webのフロント以外にも使えるので、外部IF用のXMLを作るためのテンプレートとか、にも使えます。
Apach FOPとの組み合わせで帳票の作成がすごい楽になるんじゃないかなんて夢も見てます。試してないですけど…
結構ふんだんな機能が盛り込まれてるので、どうやって使うかなんて話題は割愛します。
詳しい使い方は
Tutorial: Using Thymeleaf (ja)
とか
とか
あたりがすごくわかりやすいです。