読者です 読者をやめる 読者になる 読者になる

わずか3ファイルの変更で始める!短気なでズボラな人向けPlay Framework入門

Scala
皆さんこんちには、シチューには御飯派のムネリンです。

Play framework/Scala はじめました。

play_full_color


Scalaいいですね!
本当は千の言葉を用いてScalaの素晴らしさについて
語りたいところですが、この記事は短気なでズボラな人向けなので省略します。早速いくぞー。
今日のメニュー

Level 1: まずはHello World!をブラウザに表示しよう
Level 2: Viewに引数を渡して表示してみる

はい、今日はナント!3ファイルしか変更しません!本当です!
それでplay framework入門できちゃいます。いやー驚きですね!

では早速Windows 7(64bit)上でplay frameworkのサンプルを作ってみましょう。 


準備

1. JDKをダウンロードしてインストール

2. typesafe activatorをダウンロードしてくる

3. typesafe-activator-1.3.2.zipを解凍したらコマンドプロンプトで下記コマンド入力

$ cd 解答したフォルダ
$ activator.bat new sample

Fetching the latest list of templates...

Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
  1) minimal-akka-java-seed
  2) minimal-akka-scala-seed
  3) minimal-java
  4) minimal-scala
  5) play-java
  6) play-scala
(hit tab to see a list of all templates)
> 6 ← 今日は6番選んどきましょう。

準備完了。
早速ディレクトリを確認してみましょう。

ディレクトリ構成

  • app  ・・・・・ Playアプリケーションの本体 MVC関連ファイルをこの中に作成する
  • conf ・・・・・ 設定ファイル関連
  • logs ・・・・・ ログ
  • public・・・・ 静的ファイルがまとめられている
  • target・・・・ ビルド時にコンパイルされたプログラムが保管される
  • test・・・・・・ テストのためのソースファイルを保管
  • build.sbt ・・ ビルド時の機能設定をするファイル
  • project ・・・ SBTによるプロジェクトをビルドするために使われるファイル類
うわー、ディレクトリ多いなー。めんどうーって思ったそこの貴方。
大丈夫です。今日はこれしかファイル変更しません。

本日説明するPlayのファイル

app/controllers/Application.scala
app/views/sampleLevel2.scala.html ←新規作成
conf/routes
 
 
Level 1. まずはHello World!をブラウザに表示しよう

まず設定ファイルを変更します。

conf/routes
 
// sampleLevel1にGetでアクセスしたらこのファイルを呼べ!って意味です。
GET   /sampleLevel1    controllers.Application.sampleLevel1
GET   /sampleLevel2    controllers.Application.sampleLevel2

次にControllerを変更します。

app/controllers/Application.scala
 
package controllers

// MVC関連のクラスがまとめられているパッケージ
import play.api.mvc._

object Application extends Controller {
  def sampleLevel1 = Action {
    // Ok:HTTP ステータスコード200を返す
    Ok("Hello World")
  }
}


終わり。
コマンドプロンプトからplayを起動します。

$ activator.bat run

早速ブラウザから確認してみましょう。
 

楽勝ですね。
次いくぞー。

Level 2. Viewに引数を渡して表示してみる

app/controllers/Application.scala
 
  def sampleLevel2 = Action {
    Ok(views.html.sampleLevel2("引数1")("引数2")("引数3"))
  }
}

Controllerで表示するテンプレートをOkの引数に渡してあげています。
あまり代わり映えしませんね。
View側を編集しましょう。

View: app/views/sampleLevel2.scala.html
 
@(args1 : String)(args2 : String)(args3 : String)
    
  • 1:@args1
  • 2:@args2
  • 3:@args3

終わり。
View側のポイントは"@"です。
なんと@の後はScalaで書けちゃうんです、楽勝ですね。
コマンドプロンプトからplayを起動します。

$ activator.bat run

早速ブラウザから確認してみましょう。
 

いかがでしたでしょうか、楽勝でしたでしょうか。

この記事を読んでscalaを始めてくれる方が一人でも増えれば嬉しいです!