2015年1月7日水曜日

playframework2.3 for Java (Macに移行)

play2.3 for javaの環境をMacに移行したのでメモ

今年はplay2.3 for javaでつくったWEBアプリをサイトに組み込む。

公式ドキュメント


参考にしたブログ


インストール

playは2.3からactivatorを利用する。
まずはactivatorをインストール。
以下からダウンロード。

適当な場所に展開する。
$ cd ~
$ mkdir app
$ cp activator-1.2.12-minimal.zip /User/masai/app
$ cd /User/masai/app
$ unzip activator-1.2.12-minimal.zip
$ ln -s activator-1.2.12-minimal activator
$ export PATH=$PATH:/User/masai/app/activator

activatorコマンドが使えるかどうか、以下で確認
$ activator -help

activatorを使って、playフレームワークのアプリケーションを作成する。
$ activator new my-first-app play-java
(scalaで開発する場合は、play-javaをplay-scalaにする)

ユーザのhomeディレクトリにアプリケーションディレクトリが出来る。
$ cd /User/masai/my-first-app
$ activator
ここで依存関係の解決にけっこう時間がかかるので途中でやめないように注意。

以下のコマンドでデフォルトのアプリケーションを起動することができる。
$ activator run

では、アプリケーションをEclipseに取り込んでみよう。

開発環境

Eclipse は Scala IDE for Eclipseを使う。

$ activator eclipse
[info] Loading project definition from /Users/masai/my-first-app/project
[info] Set current project to my-first-app (in build file:/Users/masai/my-first-app/)
[info] About to create Eclipse project files for your project(s).
[info] Successfully created Eclipse project files for project(s):
[info] my-first-app

処理が完了したら、Eclipseからmy-first-appのディレクトリをインポートする。

Eclipseでインポートしたら、Playアプリケーションのファイル構成を確認しよう。

routes

routesを使って、URLとコントローラをひもづける。
サンプル・アプリケーションには2つの設定が記述されている。
GET / controllers.Applications.index
これは、/に対してGETリクエストを受け取ると、controllers.Application.indexが呼び出されることを意味する。

controller

□Application.java
・index.renderがindex.scala.htmlの描画を担当する。
・index.renderの引数はmessageとして、index.scala.htmlへのパラメータになる。
・OkはHTTPステータスコード200を返す。

view

xxx.html.indexの形式で作成しておくと、コンパイル時にview.htmlパッケージ内に
xxxオブジェクトが作成される。この動作を前提として、コントローラのクラスを記述するため、
Application.javaではindex.renderを記述できる。

□index.scala.html
・変数の宣言
@(message: String)
これは、String型のmessageという変数を使用する、という宣言であり、とても安全である。

@main
main関数の呼び出し。main.scala.htmlの呼び出しである。
mainの引数はtitleとして、main.scala.htmlへのパラメータになる。

@mainアノテーション中の @play.weblcome もmain.scala.htmlに渡すパラメータである。
play20のwelcomeメソッドを呼び出す。
変数を渡すこともできるし、style = “Java” のように、styleという変数名で、Javaというvalueで
渡すことができる。

play20のwelcomeメソッドで様々なhtmlを生成して表示する。

□main.scala.html
本体のhtmlである。
・変数の宣言
@(title: String)(content: Html)
これは、String型のtitle、Html型のcontentという変数を使用する宣言。

@titleの部分で、index.scala.html のmainメソッドから渡された値が使用される。

@routes.Assets.at
routesは、conf.routesファイルで定義される。
routesには、/Assets.atが定義されている。/assetsから、GETでfileを取得するように記載している。

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

assetsでアクセスするファイルは、パスpublicとしている。
実際、以下のディレクトリには、stylesheetsとimages、javascriptsディレクトリがある。
/Users/masai/my-first-app/public/main

@content
これは、index.scala.htmlのplay20.welcomeメソッドが生成したHtml型のオブジェクトが渡される。play29.welcomeはplayのライブラリに含まれる。

バージョン管理からはずすファイル

logs
project/project
project/target
target
tmp
dist

.cache

次回

テンプレートエンジン

0 件のコメント:

コメントを投稿