Playframework 初めてのcontroller

2013年1月2日 Posted by PURGE

お手本通りのcontroller作成。
間違いで、objectをclassと記述してしまって、ちょっとハマった。

HelloController.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)
  }

}

routesファイル

GET     /hello                      controllers.HelloController.index

日本語も難なく表示した。
今度は、viewファイルを使用してみる。views以下に配置。

HelloController.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())
  }

}

hello.scala.html

<html>
	<head>
		<title>Hello Scala!!</title>
	</head>
	<body>
		<p>こんにちは。Purgeさん!!!!</p>
	</body>
</html>

最初は、controllerから、viewを指定するの記述方法に迷った。とりあえずはこれで動作した。

こんどは、パラメータを受け取ってみる。

HelloController.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))
  }
}

パラメータが見つからないとエラーとなるようなので、あえて下記のようにリクエストにパラメータを付加してみる。

http://localhost:9000/hello?name=ほげ

hello.scala.html

@(name: String)
<html>
	<head>
		<title>Hello Scala!!</title>
	</head>
	<body>
		<p>こんにちは。@name さん!!!!</p>
	</body>
</html>

パラメータを受けて、名前が表示された。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です