frameworkを使ってHelloWorldを書いてみたいと思います。そのため、まずは前回作ったtestAppの構造を理解してから作業に入っていきます。下に書くのはtestAppの中身です。IntegrationTest.javaコンパイル前のワークスペースの中は大きく分けて、「app」「conf」「project」「public」「test」という5つディレクトリに分かれています。コンパイルを行うとこれらに追加して「target」というディレクトリが追加されます。それでは各フォルダについて説明してきます。appアプリケーション本体が格納されるディレクトリです。frameworkは他のフレームワークと同様、MVCモデルを採用しているので作成直後では「views」と「controllers」しかありません。デフォルトの設定では、モデルの格納場所として「models」というディレクトリをサポートしているので必要な場合は作成追加して利用します。frameworkの設定をファイルなどを格納するディレクトリです。framework自体の設定するファイルなどを配置します。projectSBTというビルドシステムの設定ファイル群が格納されています。基本的にここを触ることはあまりないと思います。publicスタイルシートや、javascript、画像ファイルなどを格納するためのディレクトリです。デフォルトで設定されているので、設定を変えずに使うならこのフォルダにリソース類を格納して使いましょう。testテストコードを格納する場所です。ここに格納されたテストコードを利用してPlayの試験を行います。targetコンパイルした状態のものを格納するファイルです。ここにクラスファイルなどページを構成する要素が格納され参照されます。ここまで説明しました。今回、HelloWorldを書くにあたって必要になってくるのは、app配下のファイルconf配下のファイルの二つになります。それでは早速作ってみましょう。「app」配下の「views」に「helloworld.scala.html」と「header.scala.html」というファイルを作成します。eclipseの新規作成でPlayのテンプレートを作成することが出来ます。作成されるファイルの中身には2行程度しか記述がないので、自分で作成して書いてもほぼ変わらないと思います。ファイルを作成したら、以下のように記述していきます。charset="UTF-8"&gt;&lt;title&gt;@titleString&lt;/title&gt;&lt;/head&gt;以上の記述が出来たら、「controllers」配下に「HelloWorld.java」というクラスを作成します。こちらはクラスの作成から生成することをオススメします。コンストラクタは必要ありません。World!");}}次に「conf」ディレクトリにある「routes」ファイルを編集します。controllers.HelloWorld.index()</span>これで完成です。プロジェクトのフォルダに移動して以下のコマンドを打ちます。runそれでは「http://localhost:9000」にアクセスしてみましょう。以下のように表示されたら成功です。viewですが「helloworld.scala.html」と「header.scala.html」で「@」という文字の後に色々見慣れない記述が目立ちます。これはHTMLにScalaという関数型言語を書き込んでいます。要は「@」以降がプログラミング言語になっているわけです。Scalaは「JAVA」や「C」と違って文末に「;」を付与しなくても改行していればプログラムを認識してくれます。基本は文末の「;」は付けず、同一行へ複数の処理を記述する時だけ記述します。その前提条件を踏まえつつ見ていきます。@(titleStirng:Stirng)1234567<strong>helloworld.scala.html</strong>@(mainStirng:Stirng)<strong>header.scala.html</strong>@(titleStirng:Stirng)これはJavaやCで言うところのメソッドや関数の引数宣言を表しています。分かりやすい例で言うと「helloworld.scala.html」内で「@header(mainString)」という記述がありますが、これが呼び出しです。引数に指定した「mainString」が「header.scala.html」の「titleString」に格納されます。呼び出された「header.scala.html」は値を出力した後のhtmlを返します。「mainString」は「controller」の「HelloWorld.java」から呼ばれた際に格納されます。値の出力は以下の記述で出来ます。&lt;title&gt;@titleStirng&lt;/title&gt;1234567<strong>helloworld.scala.html</strong>&lt;h1&gt;@mainStirng&lt;/h1&gt;<strong>header.scala.html</strong>&lt;title&gt;@titleStirng&lt;/title&gt;以上、view側となりますが、仕組みが分かれば結構簡単に書けます。仕組みを理解するまでが大変ですが。一つ言うとすればScalaが分かりづらいですね。JavaやCと色々違うので違和感があります。それではcontrollerを見ていきましょう。先ほど記述した「HelloWorld.java」を見ていきます。「import」部分です。view.html結構見慣れないライブラリです。frameworkで用意されているライブラリです。おおむねWebアプリを作るうえで必要そうなものはラップして用意されています。次にクラスの宣言です。{上の記述で「Controller」クラスを継承しています。これを行うのがミソです。これを行わないと、後で記述する「ok」メソッドが認識されません。実際の処理を行っているコントローラのメソッドにたどり着きました。World!");}さて説明をしていきます。このメソッドはResult型を返す静的メソッドです。return部分に「ok」というメソッドがありますが、これがブラウザに200OKを返します。引数にはResults型(先ほどのメソッドの宣言の型はResult型なので若干違います)のメソッドとして「render」メソッドが記述されています。これはscala.htmlファイルの呼び出しを行い、そこの引数に値をセットしてhtmlを生成するメソッドです。これにより生成されたhtmlをレスポンスとしてokが返します。以上で大体の説明は終わりです。最後にroutesファイルについて説明します。先ほどまで説明したファイルを配置しただけではPlayに認識してもらえません。Playに認識してもらうにはroutesファイルを編集し、URLを入力された際にどのコントローラメソッドが呼び出されるのか宣言を行い結びつける必要があります。controllers.HelloWorld.index()この記述を行うことで「http://localhost:9000/」にアクセスしたときに「HelloWorld.java」の「index()」メソッドを呼び出すようになります。routesファイルにはGETの他にPOSTも記述することが出来ます。用途に応じて使い分けるといいかもしれません。最後に一連の呼び出しの流れを書いていこうと思います。World!」という文字列を渡してhtmlを生成するHelloWorld.javaが生成したhtmlをレスポンスとしてブラウザに送信するブラウザに生成されたhtmlが表示される以上となります。長くなってしまいましたが、なんとなく理解はできたと思います。これからもっと高度な使い方をすると説明も難しくなるんだろうな。いうことで今日はここまで。コメントデータの処理方法の詳細はこちらをご覧ください。note%d人のブロガーが「いいね」をつけました。