Play frameworkのController基礎

このエントリはPlay frameworkひとりアドベントカレンダーの5日目です。

いよいよControllerに手を入れましょう。

テンプレはこんな感じになってます。

	public static Result index() {
		return ok(index.render("Your new application is ready."));
	}

この ok(index.render("ほげ")) を分解してみてみましょう

  • ok → HTTPレスポンスコード 200 でデータ返すよってこと
  • index.render/app/views/index.scala.html を使ってレンダリングするよってこと。フルで書くと views.html.index.render
  • 引数 → viewに渡されます。受け取り側は index.scala.html の1行目で定義されてる

ok?

ok があるので、当然他にもあります。 found , redirect , forbidden , notFound , badRequest , internalServerError , unauthorized あたりは使うかもしれません。

Playには変わり種かつ超便利な Result があります。それが TODO

とりあえずメソッド定義したら return TODO; しておけば大丈夫!

views?

hoge.scala.html はplayがコンパイルしてクラスにしてくれます(コンパイルした出力先は /target/scala-2.9.1/classes_managed/ のもよう)。

Controller側でコンパイルエラー表示が出ることがありますが、一度 play compile してからEclipseでclean projectすれば解消しますのでお気になさらず。

引数?

実は、 index.scala.html の1行目はこんな感じ。ちなみにファイル名の通り、viewの文法はScala。Scala...

@(message: String)

このviewの引数受け取り部分と、Controller側の渡す部分は整合取っておく必要があるのでご注意を。


See also