Scala IDEでPlay frameworkを使う(Webアプリの編集)

引き続きScala IDEのPlay frameworkプラグインを触る。今回はWebアプリを修正して実際にScala IDEを使用する。

モデルクラスを作成する

modelsパッケージの直下にQuoteという名前のクラスを作成する。Package Explorerで右クリックして、New->Scala Classを選択する。もしなければOthers...を選択して、ウィザードからScala Classを選択する。以下の項目を修正して、Finishボタンを押すとクラスが作成される。

  • Package: models
  • Name: Quote

作られたクラスを以下のように修正していく。


models/Quote.scala

package models

case class Quote(text: String, author: String)

views/index.scala.html

@(message: String, quote: models.Quote)
 
@main("Welcome to Play 2.1") {
 
    <p>@quote.text<em> - @quote.author</em></p>
 
}

controllers/Application.scala

package controllers

import play.api._
import play.api.mvc._
import models._;

object Application extends Controller {
  
  def index = Action {
    Ok(views.html.index("Test", Quote("Hoge", "Fuga")))
  }
}

これで再度http://localhost:9000にアクセスしたとき、以下のように表示される。

f:id:mi_kami:20130618223730p:plain

Scala IDEとPlay frameworkの連携

Playのテンプレート(views配下の*.scala.html)は、そのファイルを変更した時に自動的に再読み込みされ、コンパイルされる。尚、テンプレートファイルはすべてScalaコードに変換され、targetフォルダ配下に格納される。
Scala IDE側はeclipse 3.7から追加された"Refresh using native hooks or polling"機能を使ってリソースが変更されたかどうかをチェックして、変更されたらコンパイルを実行しているようだ。