Locked History Actions

Diff for "Play/StepByStep"

Differences between revisions 2 and 3
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:

※play-scala-0.9とはコントローラの記述方法が大幅に異なるので注意。
Line 13: Line 16:
== routesの確認 == == ルーティングの確認 ==
Line 26: Line 29:

== コントローラの確認 ==

app/controllers.scalaを見てみると、
{{{
package controllers

import play._
import play.mvc._

object Application extends Controller {
    
    import views.Application._
    
    def index = {
        html.index("Your Scala application is ready!")
    }
    
}

}}}
などとなっている。この「html.index("Your Scala application is ready!")」という部分は、play-scala専用のテンプレートエンジンによって生成される関数の呼び出しなのだが、これはとりあえず無視する。

とりあえず、テンプレートは使わずに自力でhtmlを作成して返すことを考える。

== 自力HTMLの返し方 ==

ステップバイステップ

以下の記述は、Play1.2.2RC2+scala-0.9.1によるもの(2011/6/25時点)

※play-scala-0.9とはコントローラの記述方法が大幅に異なるので注意。

スケルトンの作成と実行

上述の環境でplay new ... -with scalaとしてアプリケーションを作成する。 さらにIntelliJで編集できるように、play idealize ...などとする(このときエラーが発生するがとりあえず無視)。 play runとして実行する。通常通りのデモ画面が表示される。

ちなみに、現時点ではplay run --%prodとするとエラーが発生してしまう。

ルーティングの確認

conf/routesを確認すると、

GET     /                                       Application.index

という記述がある。 これは、ルートにアクセスされた場合には、controllersパッケージのApplicationオブジェクトのindexメソッドを呼び出すという意味。 ここで記述する、オブジェクト名はcontrollersパッケージに存在することを前提としている。これはJavaの命名規約に背くものであるが、このアプリ内だけで使うものなので問題ないだろう、と考えたものと思われる。 controllers以外のパッケージのものを使う場合は、パッケージ名を明示する必要がある。

routesの記述はJava版と同じと考えられる。 routes ファイルの構文

コントローラの確認

app/controllers.scalaを見てみると、

package controllers

import play._
import play.mvc._

object Application extends Controller {
    
    import views.Application._
    
    def index = {
        html.index("Your Scala application is ready!")
    }
    
}

などとなっている。この「html.index("Your Scala application is ready!")」という部分は、play-scala専用のテンプレートエンジンによって生成される関数の呼び出しなのだが、これはとりあえず無視する。

とりあえず、テンプレートは使わずに自力でhtmlを作成して返すことを考える。

自力HTMLの返し方