・ controller
・ viewsの1ファイル
・ viewsのmain(テンプレート)
の関係がわかったので書いておこうと思う。
package controllers import play.api._ import play.api.mvc._ object Application extends Controller { def index = Action { Ok(views.html.index("Your new application is ready.")) } }
の
Ok(views.html.index("Your new application is ready."))
の引数の数と
views/index.scala.html
@(message: String) @main("Welcome to Play 2.0") { <h1>Template</h1> }
の
@(message: String)
の括弧の数は一致しなければならない。
Ok(views.html.index("Hoge","Fuga"))
なら
@(hoge_message: String)(fuga_message:String)
みたいにしないといけない。
んで、
@main("Welcome to Play 2.0") {
<h1>Template</h1>
}
の括弧の数と
views/main.scala.html
@(title: String)(main: Html) <!DOCTYPE html> <html> <head> <title>@title</title> <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/bootstrap.css")"> <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")"> <script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script> </head> <body> <div class="container"> <div class="hero-unit"> @main </div> </div> </body> </html>
の
@(title: String)(main: Html)
の括弧の数は一致しなければならない。
もし、
@main("Welcome to Play 2.0") { <h1>Template</h1> }("hogehoge")
にするなら
@(title: String)(main: Html)(hoge:String)
にしないといけない。
コントローラのViewを呼び出す関数の引数の数
=viewで呼び出されてるファイルの変数宣言の数
view内のmain関数の括弧の数
=mainファイルの変数宣言の数
ってなってる。んで、
変数宣言の型がStringなら( )
Htmlなら{ }
にしなければならない。