Wikiを作るためにPlay2を実際に触ってみようということで、Hello Worldを出力してみた。

今回使った環境として

  • Scala
  • Play2
  • Intellij Idea 14 Ultimate

になります。学生なので無料でUltimateを使えています。 以下、Hello Worldの出力の過程です。

手順1 既存のソースを見てみる

最初に出力されるApplication.scalanのソースコードは以下のようになっていました。これは/indexにアクセスした際に、/app/views/index.scala.htmlを返すという意味になります。okは正しいrequestの場合みたいです。なので、ただHello Worldを表示したければ、この辺をいじればいいみたい。

1
2
3
4
5
6
7
8
9
10
11
12
package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {

  def index = Action {
      Ok(views.html.index("Your new application is ready."))
            }
  
}

手順2 Hello Worldを表示するhtmlを指定する

Hello Worldを表示するファイルを作る前に、requestを飛ばす先を変更します。

変更点は一つだけで views.html.index() => views.html.hello() です。これは/app/views/index.scala.htmlから/app/views/hello.scala.htmlに変更するという意味です。

1
2
3
4
5
6
7
8
9
10
11
package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {

  def index = Action {
      Ok(views.html.hello())
            }
}

手順3 htmlファイルを作成する

ただこれだけ

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>Hello World</h1>
</body>
 </html>

これで実行すればHello Worldが出力されます。

おまけ

Hello Worldを出力する上で、routingを全く気にしていないですが、実際にアプリケーションを作る上でroutingは必須です。簡単にroutingをする方法を見てみます。

1
2
3
4
5
6
7
8
9
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET     /                           controllers.Application.index

# Map static resources from the /public folder to the /assets URL path
GET     /assets/\*file               controllers.Assets.at(path="/public", file)

この中で変更する部分は GET / controllers.Application.index です。これは/にgetを投げたときに/app/controllers/Application.scalaのindexを表示するという意味です(多分)。なので、この辺を自分のやりたいようにできます(ある程度までは)