Play Frameworkに挑戦(Java編 その2) ~構造を理解する~

前回の続き

前回はPlay Frameworkで作成された初期ページの確認までをした。

さて今回はイントロダクション動画の2:00~6:00あたりのソースの構造について確認してみよう。
Introduction to Play Framework for Java developers on Vimeo

ルーティング設定 (conf/routes)

routesファイルにはクライアントからのHTTPリクエストとそれを処理するControllerのメソッドが記述されている。

GET     /                           controllers.Application.index()

書式は

HTTPメソッド | URI | 呼び出されるメソッド
コントローラー (controllers/Application.java
    public static Result index() {
        return ok(index.render("Your new application is ready."));
    }

MVCモデルのコントローラー(C)にあたる部分。

コードの okメソッドは、play.mvc.Controllerクラスのスーパークラスであるplay.mvc.Resultsクラスのメソッドで、HTTPステータス 200 OK を返すようだ。

index.render()の部分は、次のindex.scala.htmlというビューのレンダリングを行っている様子。

ビュー (views/index.scala.html , main.scala.html)

MVCモデルのビュー(V)にあたる部分。

scala.html」という拡張子のファイルはPlay Frameworkのテンプレートファイルだそうだ。

index.scala.html

@(message: String)

@main("Welcome to Play") {

    @play20.welcome(message, style = "Java")

}

よくはわからないが、mainという別のビューを呼び出しているらしい。

main.scala.html

@(title: String)(content: Html)

<!DOCTYPE html>

<html>
    <head>
        <title>@title</title>
        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
        <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
        <script src="@routes.Assets.at("javascripts/jquery-1.9.0.min.js")" type="text/javascript"></script>
    </head>
    <body>
        @content
    </body>
</html>
モデル

まだこの時点ではMVCモデルのモデル(M)にあたる部分はない。
動画では8:00あたりから説明があるので、次々回あたりに触れることになりそう。


とりあえず、今回はこれまで。