お手本通りのcontroller作成。
間違いで、objectをclassと記述してしまって、ちょっとハマった。
HelloController.scala
[scala]
package controllers
import play.api.mvc.Action
import play.api.mvc.Controller
object HelloController extends Controller {
def index = Action{
Ok(<p>Hello Purgeさん</p>).as(HTML)
}
}
[/scala]
routesファイル
[scala]
GET /hello controllers.HelloController.index
[/scala]
日本語も難なく表示した。
今度は、viewファイルを使用してみる。views以下に配置。
HelloController.scala
[scala]
package controllers
import play.api.mvc.Action
import play.api.mvc.Controller
object HelloController extends Controller {
def index = Action{
//Ok(<p>Hello Purgeさん</p>).as(HTML)
Ok(views.html.hello())
}
}
[/scala]
hello.scala.html
[html]
<html>
<head>
<title>Hello Scala!!</title>
</head>
<body>
<p>こんにちは。Purgeさん!!!!</p>
</body>
</html>
[/html]
最初は、controllerから、viewを指定するの記述方法に迷った。とりあえずはこれで動作した。
こんどは、パラメータを受け取ってみる。
HelloController.scala
[scala]
package controllers
import play.api.mvc.Action
import play.api.mvc.Controller
object HelloController extends Controller {
def index = Action{request =>
val params: Map[String, Seq[String]] = request.queryString
val name = params("name").head
Ok(views.html.hello(name))
}
}
[/scala]
パラメータが見つからないとエラーとなるようなので、あえて下記のようにリクエストにパラメータを付加してみる。
http://localhost:9000/hello?name=ほげ
hello.scala.html
[html]
@(name: String)
<html>
<head>
<title>Hello Scala!!</title>
</head>
<body>
<p>こんにちは。@name さん!!!!</p>
</body>
</html>
[/html]
パラメータを受けて、名前が表示された。