ドキュメント

§アクション、コントローラーと結果

§アクションとは?

Playアプリケーションが受信するほとんどのリクエストは、アクションによって処理されます。

アクションは基本的に、リクエストパラメータを処理し、クライアントに送信される結果を生成するJavaメソッドです。

public Result index(Http.Request request) {
  return ok("Got request " + request + "!");
}

アクションは、Webクライアントに送信するHTTPレスポンスを表すplay.mvc.Result値を返します。この例では、okは、200 OKレスポンスと、text/plainレスポンスボディを含むレスポンスを構築します。HTTPレスポンスのその他の例については、play.mvc.Resultsメソッドを参照してください。

§コントローラー

コントローラーは、複数のアクションメソッドをグループ化するplay.mvc.Controllerを拡張するクラスにすぎません。

package controllers;

import play.*;
import play.mvc.*;

public class Application extends Controller {

  public Result index() {
    return ok("It works!");
  }
}

アクションを定義する最も簡単な構文は、上記のようにResult値を返すパラメーターなしのメソッドです。

アクションメソッドにはパラメーターを含めることもできます。

public Result index(String name) {
  return ok("Hello " + name);
}

これらのパラメーターはRouterによって解決され、リクエストURLの値で埋められます。パラメーター値は、URLパスまたはURLクエリ文字列から抽出できます。

§結果

まずはシンプルな結果から始めましょう。ステータスコード、HTTPヘッダーのセット、およびWebクライアントに送信するボディを含むHTTP結果です。

これらの結果はplay.mvc.Resultで定義され、play.mvc.Resultsクラスは、前のセクションで使用したokメソッドなど、標準的なHTTP結果を生成するためのいくつかのヘルパーを提供します。

public Result index() {
  return ok("Hello world!");
}

さまざまな結果を作成するいくつかの例を次に示します。

Result ok = ok("Hello world!");
Result notFound = notFound();
Result pageNotFound = notFound("<h1>Page not found</h1>").as("text/html");
Result badRequest = badRequest(views.html.form.render(formWithErrors));
Result oops = internalServerError("Oops");
Result anyStatus = status(488, "Strange response type");

これらのヘルパーはすべて、play.mvc.Resultsクラスにあります。

§リダイレクトもシンプルな結果です

ブラウザーを新しいURLにリダイレクトすることも、別の種類のシンプルな結果にすぎません。ただし、これらの結果タイプにはレスポンスボディはありません。

リダイレクト結果を作成するために利用できるいくつかのヘルパーがあります。

public Result index() {
  return redirect("/user/home");
}

デフォルトでは303 SEE_OTHERレスポンスタイプを使用しますが、より具体的なステータスコードを指定することもできます。

public Result index() {
  return temporaryRedirect("/user/home");
}

次: HTTPルーティング


このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。ドキュメントガイドラインをお読みになった後、お気軽にプルリクエストを送信してください。質問やアドバイスがありますか?コミュニティフォーラムにアクセスして、コミュニティとの会話を開始してください。