・ 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なら{ }
にしなければならない。