SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

ScalaのWebアプリケーションフレームワーク「Play Framework」入門
~(1)環境構築とスタートアップアプリの作成

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第10回

(3)メッセージのカスタマイズ

 試しに、HTMLのtitleとwelcomeページのメッセージを変更してみましょう。titleは「index.scala.html」でmain呼び出し時の引数として設定しています。

[View] index.scala.html (/app/views)
@(message: String)

@main("ようこそPlayへ") {

    @play20.welcome(message)

}

 上記のとおりmain()の引数を「"ようこそPlayへ"」と修正しました。welcomeページのメッセージは「Application.scala」で設定しています。

[View] Application.scala (/app/views)
object Application extends Controller {

  def index = Action {
    Ok(views.html.index("新しいアプリケーションが準備できました。"))
  }

}

 上記のとおりindex()の引数を「"新しいアプリケーションが準備できました。"」と修正しました。

 もう一度アプリケーションにアクセスすると、タイトルとメッセージが日本語化されましたね。Eclipseの「workspace」配下にプロジェクトをインポートした場合は、インポート先フォルダで「play run」コマンドを実行する必要がありますので、注意してください。変更がうまく反映されない場合は、「play clean」コマンドを実行後に再確認してみましょう。

(4)本番モードのアプリケーション

 では、「play start」や「techApp.bat」から起動した本番モードのアプリケーションは、なぜメッセージしか表示されなかったのでしょうか?

 「index.scala.html」から呼び出されている「@play20.welcome(play20/welcome.scala.html)」を見てみましょう。

 ソースファイルは「Play2のインストール(3)Play2のインストール」で展開したPlayのディレクトリ内の「<Play>\framework\src\play\src\main\scala\views\play20」(筆者の場合は「C:\pleiades\play\2.2.1\framework\src\play\src\main\scala\views\play20」の「welcome.scala.html」です。

[View] welcome.scala.html (/play20)
@play.api.Play.maybeApplication.filterNot(_.mode != play.api.Mode.Dev).map { _ =>
    
<link rel="stylesheet" media="screen" href="/@@documentation/resources/style/main.css">

<section id="top">

……省略……

}.getOrElse {
    
<h1>@message</h1>
    
}

 上記のように、「@play.api.Play.maybeApplication.filterNot(_.mode != play.api.Mode.Dev)」によってモードによるHTMLの切替が行われています。開発モード(play.api.Mode.Dev)の場合は最初のカッコ({})内のHTMLが出力され、本番モードは「.getOrElse {}」の中の「@message」が出力されることになります。

まとめ

 今回はPlay2でアプリケーションを開発するための環境構築方法をゼロから紹介し、「play new」コマンドで生成されるスタートアップアプリケーションの流れを解説しました。Play2の環境構築がいかに簡単であるかがお分かりいただけたと思います。まだ関数型言語を触ったことがないという方も、Scalaでプログラミングしたことがないという方も、Play2から始めてみてはいかがでしょうか?

 今後は今回作った環境をベースとして、登録・検索・更新・削除ができる簡単なWebアプリケーションを作っていきます。データベースへのアクセスは先日バージョン2.0.0のGA版が公開されたSlickを利用します。

 次回は、node.jsのフレームワークであるSailsについて紹介する予定です。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

前出 祐吾(TIS株式会社)(マエデ ユウゴ)

TIS株式会社 コーポレート本部 戦略技術センター所属。これまで社内向けWebアプリケーションフレームワークの開発やJenkinsの活用を中心に様々な手段で開発の効率化を図ってきた。現在は、さらに革命的な効率化を目指し、Scalaを活用した次世代開発基盤の研究&開発に従事している。システム開発は、泥...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7580 2014/02/04 14:00

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー