(3)メッセージのカスタマイズ
試しに、HTMLのtitleとwelcomeページのメッセージを変更してみましょう。titleは「index.scala.html」でmain呼び出し時の引数として設定しています。
@(message: String)
@main("ようこそPlayへ") {
@play20.welcome(message)
}
上記のとおりmain()の引数を「"ようこそPlayへ"」と修正しました。welcomeページのメッセージは「Application.scala」で設定しています。
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」です。
@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について紹介する予定です。


