Play 2.0のアーキテクチャとディレクトリ構成の基礎知識Scala+Play 2.0でWebアプリ開発入門(2)(1/3 ページ)

2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、ScalaでシンプルなPlayアプリを作って動かすまでの手順、Playアプリの全体構造やファイル構成、各ディレクトリの役割を解説

» 2012年11月29日 18時00分 公開
[中村修太クラスメソッド]

Scala+Play 2.0の環境構築をしておこう

 前回の記事「Play framework 2.0の概要/5つの特徴とScalaで作るための環境構築」では、Playframework 2.0(以下、Play 2.0)の概要とセットアップ方法を紹介しました。

 今回は、ScalaでシンプルなPlayアプリを作成して動かしてみましょう。また、Playアプリの全体的な構造や、ファイル構成や各ディレクトリの役割も紹介します。

 なお、第1回記事では、「eclipsify」コマンドを使ってPlayアプリをEclipseプロジェクト化し、Eclipse上でソースファイルを編集しました。今後も本記事のサンプルコードは、Eclipseで編集していきますので、まだセットアップができていない場合は連載第1回記事を参照してEclipseをセットアップしてください。

ScalaのPlayアプリを作成

 前回は「sampleApp」というアプリを作成し、playコンソールから起動してみました。「http://localhost:9000/」にアクセスすれば、デフォルトのPlayアプリ紹介ページが表示されたはずです。

 なお、画面右上のBrowse APIボタンをクリックすれば、Play 2.0のAPIドキュメントが表示されます。

「play new」コマンドでアプリを新規作成

 本記事でも新しく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!

 アプリのひな型が作成されました。

「eclipsify」コマンドでプロジェクトをEclipseにインポート

 次に、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を表示するだけのシンプルなアプリを作る

 準備ができたので、ソースコードを編集しましょう。リクエストを受けたら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ブラウザで確認

 アプリを起動してWebブラウザで確認してみましょう。gyroディレクトリへ移動後、playコンソールを起動してrunコマンドを実行するか、コンソールからplay runコマンドを実行しましょう。

% play    
……
[gyro] $ run

 アプリが起動したら、「http://localhost:9000/」にWebブラウザでアクセスしてみてください。

 なお、すでに「run」コマンドでアプリが起動している場合、ソースを修正してWebブラウザをリロードすれば、再起動なしで変更が反映されます。ソース修正と動作確認を繰り返し行いたい場合に便利ですね。

 このセクションでは、Playプロジェクト作成からソースの修正、動作確認を一通り行ってみました。次に、Playプロジェクトの全体的な構成を紹介します。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。