play2.4にて
あるviewから他のviewを呼び出して使う時の方法
忘れないようにメモ
同一ディレクトリ内からmenu.scala.htmlを呼び出す場合
引数なしの場合@menu()
でOK。
引数がない場合もmenu.scala.htmlの頭には空の@()
をつける。
引数がある場合には@menu(引数)
で呼び出せる。
別のディレクトリからmenu.scala.htmlを呼び出す場合
@views.html.user.menu()
のようにフルパスで呼び出す。
補足
BaseScalaTemplate(play.twirl.api.HtmlFormat$@...)と表示される場合
@記号が勝手にどこからどこまでがscalaスクリプトか
判断してしまったために起きる現象らしい。
どう判断しているのか?
- ホワイトスペースがあるとそこでscalaスクリプトは終わりと判断される。
- @()の範囲はscalaスクリプトと判断する。
- ()内にHTMLタグは書けない。
Play Framework 2徹底入門より