https://github.com/playframework/Play20/wiki/ScalaTemplates
Play Scalaテンプレート
Play Scalaテンプレートは標準のScalaのfunction(以降、関数)にコンパイルされます。
下記のようなconvention(規約)に基づきます。
views/Application/index.scala.html
というテンプレートファイルを作ると
views.html.Application.index<という関数を生成します。
上記ファイルの内容が以下のようだとすると
@(customer: Customer, orders: Seq[Order])Welcome @customer.name!
- @orders.map { order =>
- @order.title }
これはどのScalaコードからでも、下記のように呼び出せます。
val html = views.html.Application.index(customer, orders)
なお、テンプレートファイルの1行目に記載してあるものは、Scala関数の引数とのこと。テンプレートを呼び出す際にも、関数を呼び出すのと同じように、引数に値を渡すんですねー。
"@"キャラクタ
テンプレート上の@は、Scalaコードの始まりと見なされます。
明示的に終了を記述する必要はありません。
ただし、マルチトークン(?)なScalaコードを記述したい場合は、
@(Scalaコード1 + Scalaコード2)のようにかっこでくくる必要があります。
また、{}を使って、複数のステートメントを書くこともできます。
@は特別なキャラクタなので、エスケープする場合は、
@@
と@を重ねる形でエスケープします。
テンプレートパラメータ
テンプレートは単純な関数であるため、パラメータが必要です。
パラメータは、テンプレートファイルの1行目に記述される必要があります。
デフォルト値も使えます。
パラメータグループも使えます。
インプリシットパラメータも使えます。
※その他は今のところ使わなさそうなので省略