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