Controller
以下の3つのコントローラーは基本importしておくのが鉄板らしい
1. playパッケージ
Playアプリケーション全体に関する機能を提供するクラスがまとめられている。アプリケーション設定やログ出力、ルーティング情報などといったものに関するクラスを保持。
2. paly.mvcパッケージ
MVCの諸機能に関するクラス類がまとめれれている。
3. viewsパッケージ
Viewで必要とされる機能(ヘルパーと呼ばれる機能など)に関するクラスがまとめられている。
ActionとResult
Controllerにはクライアントからのアクセスに応じて実行されるメソッドが用意され、それをActionと呼ぶ。ActionにはResultが返される。
- okメソッド
okメソッドはResultインスタンスを返す。単に返すのではなく、指定したアドレスに正常にアクセス出来たことを保証するResultや、エラーが発生したことを知らせるResultを返す。引数には、コンテンツやファイルインスタンスを指定する。
- renderメソッド
renderメドッソは引数の値を渡して、Webページのテンプレートをレンダリングする。返り値はHtmlクラスのインスタンスで、これはContentとして扱うことが可能。
View
Play Frameworkではページ全体のレイアウトとコンテンツを分けて作成することができる。ページ全体のレイアウトを担当する「テンプレート」、ビューを担当するものが「ActionとResultによって生成されるコンテンツ」と2つに分類される。
テンプレート
テンプレートは、冒頭に@をつけることでScalaのスクリプトを記述することができる。引数が1つの場合は、()を省略することが可能。これによりControllerから渡される引数を受け取ることができる。注意点として、ControllerとViewの引数宣言は以下を守らなければならない。
- 受け渡す型が同一である
- 引数の数が同一である
- 順番が同一である
ルーティング
「どのアドレスにアクセスしたらどれを表示するか」といった、アドレスと表示のマッピング情報のこと。
GET アドレス 呼び出すメソッド
POST アドレス 呼び出すメソッド
上記のように、「HTTPメソッド」「アドレス」「メソッド」の3つを空白で区切って表現する。