PlayFrameworkのtemplate その2

Include

テンプレートの中で別のテンプレートを呼び出すにはincludeを使います。
includeされたテンプレートでは、親テンプレートで使用可能な値を使うことができます。

includeする親側での呼び出しは下のような形です。

#{include 'Books/bookDetail.html'}

呼び出されるほうのテンプレート。
親で有効な値を使う場合は普通に${model.property}みたいに使えます。

<label>${book.author}</label>

Tag

テンプレートに対してパラメータを渡す場合にはTagを使います。
Tagというとわかりにくいですが、単にテンプレートと同じものだけども、こちらはパラメータを渡せます。
IncludeされたテンプレートからTagを呼び出すこともできます。

まず/views/tags/フォルダの下にTag化したいテンプレートを入れます。
Tag用のテンプレートの中では、親から受け取ったパラメータの頭にはアンダースコアが付きます。
この例では親テンプレートが「propertyName」を渡しているので、Tagテンプレートでは「_propertyName」として受けとります。

/*/views/tags/tagBookDetail.html*/
<input type="text" name="${_propertyName}" value="${_propertyValue}" />
/*親テンプレート*/
#{tagBookDetail propertyName:"author", propertyValue:"Goethe" /}

パラメータはカンマ区切りで渡します。