Groovyでテンプレートエンジン
Groovyにはテンプレートエンジンと呼ばれるものがあります。
埋め込みのプレースホルダを設けておいて、そこに値をバインドしていくっていうアレです。
サンプルだけでもメモしていきます。
SimpleTemplateEngine
まずは一番基本のものから。
バインディングで'tenki'に'晴れ'とかを紐付けてあげる感じの使い方です。
<%= %> とかだけでなく、${ tenki } とかでもいけます。
SimpleTemplateEngineTest.groovy
def f = new File('test1.template') def engine = new groovy.text.SimpleTemplateEngine() def binding = ['tenki': '晴れ'] def template = engine.createTemplate(f).make(binding) println template.toString()
test1.template
こんにちは 今日の天気は<%= tenki %>です!
GStringTemplateEngine
これは知らなかった。テンプレート中にoutを使えるからバックスラッシュをエスケープしなくていいんですね。
暗黙変数outがjspみたいな感じ?
GStringTemplateEngineTest.groovy
def f = new File('test2.template') def engine = new groovy.text.GStringTemplateEngine() def binding = ['tenki': 1] def template = engine.createTemplate(f).make(binding) println template.toString()
test2.template
こんにちは 今日の天気は<% switch(tenki) { case 0 : out << '晴れ'; break case 1 : out << '曇り'; break case 2 : out << '雨'; break default : out << '分かりません'; break } %>です!