Playフレームワークにとってのつばさ君とみさき君(?)
それがControllersとResults。
理解のためには、Controllersはサーブレット、ResultsはHTTPResponseと
捉えてもいいかも。あくまで位置づけが、ということですが。
ControllersとResultsについて。
Controllersとは
play.mvc.Controllerを継承したクラスのことで、サーブレット的なポジション。
このクラスの中で定義されるメソッドが、Actionと呼ばれる。
Actionとは、リクエストを処理するメソッドの名前。
Controllerクラス内に書かれたpublic staticなメソッドがActionとなる。
単にそう呼んでるだけで、strutsとかのActionとはちょっと違う。
あっちはクラス、こっちはメソッド。※1
Action(メソッド)は、引数も取れる。
public static Result index(String name) { return ok("Hello" + name); }
引数は、
クライアントからは、URLのパスで指定したり、クエリで指定する。
サーバーでは、パスやクエリをRouterというクラスが解釈してくれる。
Resultsとは
play.mvc.Result(s)は、HTTP resultのこと。HTTPヘッダーとBody情報を
クライアントに返すためのクラス。
Actionの戻り値として活躍する。
いろいろある。
//303 SEE_OTHERのこと public static Result index() { return redirect("/user/home"); }
303は、もうここにはコンテンツはないから、こっちに移動してね、という
恒久的なニュアンスが強いリダイレクト。
// 302(か307)のこと public static Result index() { return temporaryRedirect("/user/home"); }
302(307)は一時的に別のURLにリダイレクトさせるけど、そのうち元に
戻すよ、という意味合いが強い。
// いわゆる200 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)); // 404。内部エラー。 Result oops = internalServerError("Oops"); // ステータスを指定して返す Result anyStatus = status(488, "Strange response type");
などなど。状況によってレスポンスを簡単に変えられる仕組みになっている。
‘ rel=’vidbox 800 600′ title=’play framework(playフレームワーク)2.0を使ってみた動画’ class=’filter_img’>
tweet

- Lv.1 PlayフレームワークのControllersとResults [play framework2.0][java]
- by