2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、ScalaでシンプルなPlayアプリを作って動かすまでの手順、Playアプリの全体構造やファイル構成、各ディレクトリの役割を解説
前回の記事「Play framework 2.0の概要/5つの特徴とScalaで作るための環境構築」では、Playframework 2.0(以下、Play 2.0)の概要とセットアップ方法を紹介しました。
今回は、ScalaでシンプルなPlayアプリを作成して動かしてみましょう。また、Playアプリの全体的な構造や、ファイル構成や各ディレクトリの役割も紹介します。
なお、第1回記事では、「eclipsify」コマンドを使ってPlayアプリをEclipseプロジェクト化し、Eclipse上でソースファイルを編集しました。今後も本記事のサンプルコードは、Eclipseで編集していきますので、まだセットアップができていない場合は連載第1回記事を参照してEclipseをセットアップしてください。
前回は「sampleApp」というアプリを作成し、playコンソールから起動してみました。「http://localhost:9000/」にアクセスすれば、デフォルトのPlayアプリ紹介ページが表示されたはずです。
なお、画面右上のBrowse APIボタンをクリックすれば、Play 2.0のAPIドキュメントが表示されます。
本記事でも新しくPlayアプリを作成してソースコードを編集してみましょう。まずは、「play new」コマンドでアプリを作成します。同時にアプリ名を入力してください。ここでは「gyro」とします。
%play new gyro
そして、Scalaタイプのアプリを選択するので「1」とします。
What is the application name? > gyro Which template do you want to use for this new application? 1 - Create a simple Scala application 2 - Create a simple Java application 3 - Create an empty project > 1 OK, application gyro is created. Have fun!
アプリのひな型が作成されました。
次に、Eclipseでプロジェクトを編集できるように、eclipsifyコマンドを実行しましょう。
まず、先ほど新規作成したgyroディレクトリに移動してplayコンソールを起動します。
% cd gyro/ % play [info] Loading project definition from /path/your/app/gyro/project [info] Set current project to gyro (in build file:/path/your/app/gyro/) _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org > Type "help play" or "license" for more information. > Type "exit" or use Ctrl+D to leave this console. [gyro] $
playコンソールが起動したらeclipsifyコマンドを実行してプロジェクトをEclipseプロジェクトにします。
[gyro] $ eclipsify with-source=true
最後に、作成したプロジェクトをEclipseでインポートしましょう。[File]→[import]→[Existing Projects into Workspace]を選択し、gyroディレクトリを指定します。これで、Eclipseでソースの編集ができるようになりました。
準備ができたので、ソースコードを編集しましょう。リクエストを受けたらHTMLを表示するだけのシンプルなアプリを作成します。
まずは、「app/controllers/Application.scala」ファイルを編集します。「Your new application is ready.」という文字列を「Hello Play 2.0」に変更しましょう。ここで渡した文字列を画面に表示します。
package controllers import play.api._ import play.api.mvc._ object Application extends Controller { def index = Action { Ok(views.html.index("Hello Play 2.0")) } }
次に、app/views/index.scala.htmlを編集します。これは「Scala template」と呼ばれるもので、Scalaの構文を用いながらHTML/CSV/XMLなどのテキストフォーマットを生成できます。Javaでいう「JSP」のようなものですね。
これらはシンプルな命名規則に従って、標準のScalaのオブジェクトとしてコンパイルされます。実際に「views/index.scala.html」というファイルを作成すると、views.html.indexオブジェクトが生成されます。
ファイルを編集しましょう。「@main」に渡している文字列はWebブラウザで表示したときのタイトルです。この部分と「@play20.welcome」を使っている個所(デフォルトのドキュメント表示処理)を下記のように変更します。
@(message: String) @main("first application") { <h1>@message</h1> }
これでWebブラウザでのアクセス時、画面に「Hello Play 2.0」が表示されるようになるはずです。
アプリを起動してWebブラウザで確認してみましょう。gyroディレクトリへ移動後、playコンソールを起動してrunコマンドを実行するか、コンソールからplay runコマンドを実行しましょう。
% play …… [gyro] $ run
アプリが起動したら、「http://localhost:9000/」にWebブラウザでアクセスしてみてください。
なお、すでに「run」コマンドでアプリが起動している場合、ソースを修正してWebブラウザをリロードすれば、再起動なしで変更が反映されます。ソース修正と動作確認を繰り返し行いたい場合に便利ですね。
このセクションでは、Playプロジェクト作成からソースの修正、動作確認を一通り行ってみました。次に、Playプロジェクトの全体的な構成を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.