play 2.0.4で、play run すると下記のエラー。
a module is not authorized to depend on itself
原因はわかりませんが、play 2.1.0をインストールし直すことで解決。
ちなみに、playのサイトがリニューアルしました。ダウンロードしている最中にサイトが変わった。
どうでも良いことですが・・・。
play 2.0.4で、play run すると下記のエラー。
a module is not authorized to depend on itself
原因はわかりませんが、play 2.1.0をインストールし直すことで解決。
ちなみに、playのサイトがリニューアルしました。ダウンロードしている最中にサイトが変わった。
どうでも良いことですが・・・。
お手本通りのcontroller作成。
間違いで、objectをclassと記述してしまって、ちょっとハマった。
HelloController.scala
package controllers import play.api.mvc.Action import play.api.mvc.Controller object HelloController extends Controller { def index = Action{ Ok(<p>Hello Purgeさん</p>).as(HTML) } }
routesファイル
GET /hello controllers.HelloController.index
日本語も難なく表示した。
今度は、viewファイルを使用してみる。views以下に配置。
HelloController.scala
package controllers import play.api.mvc.Action import play.api.mvc.Controller object HelloController extends Controller { def index = Action{ //Ok(<p>Hello Purgeさん</p>).as(HTML) Ok(views.html.hello()) } }
hello.scala.html
<html> <head> <title>Hello Scala!!</title> </head> <body> <p>こんにちは。Purgeさん!!!!</p> </body> </html>
最初は、controllerから、viewを指定するの記述方法に迷った。とりあえずはこれで動作した。
こんどは、パラメータを受け取ってみる。
HelloController.scala
package controllers import play.api.mvc.Action import play.api.mvc.Controller object HelloController extends Controller { def index = Action{request => val params: Map[String, Seq[String]] = request.queryString val name = params("name").head Ok(views.html.hello(name)) } }
パラメータが見つからないとエラーとなるようなので、あえて下記のようにリクエストにパラメータを付加してみる。
http://localhost:9000/hello?name=ほげ
hello.scala.html
@(name: String) <html> <head> <title>Hello Scala!!</title> </head> <body> <p>こんにちは。@name さん!!!!</p> </body> </html>
パラメータを受けて、名前が表示された。
先日のScala事始めに引き続き、ScalaもしくはJavaのフレームワークである Playframework に興味を持ってみた。
理由としては、私自身、元々Java専門。しかしJavaでWeb開発するのは、かなり苦痛。
そこでRuby on Railsに暫く乗り換えていたのですが、Rubyはやっぱりすごく楽ちん。
でも、やはり業務での利用となると、MySQLだけでなく、業務専用のDBとの連携が必要となる。確かにRailsでも業務専用DBとの連携は可能なのだが、私自身が、にわかエンジニアなので、どこか違和感と不安感を感じていた。
そこで、Railsの便利さと、Javaの安心感を兼ねそろえていると噂の Scala と、その代表的なフレームワークである Play2 に興味を持った経緯である。
早速zipダウンロード。
オンラインマニュアルには、権限の無いディレクトリにインストールをすることを非推奨としているようであるが、私の場合は、下記ディレクトリにインストール。
/usr/local/play-2.0.4
私の開発環境は、Macなので、ユーザディレクトリにある .bashrc に下記を追記。
$ vi .bashrc export PATH=${PATH}:/usr/local/play-2.0.4
環境変数を有効にして、初めての playコマンド。
$ source .bashrc $ play help Getting net.java.dev.jna jna 3.2.3 ... :: retrieving :: org.scala-sbt#boot-app confs: [default] 1 artifacts copied, 0 already retrieved (838kB/176ms) Getting Scala 2.9.1 (for console)... :: retrieving :: org.scala-sbt#boot-scala confs: [default] 4 artifacts copied, 0 already retrieved (19939kB/1169ms) Getting play console_2.9.1 2.0.4 ... :: retrieving :: org.scala-sbt#boot-app confs: [default] 5 artifacts copied, 0 already retrieved (3667kB/208ms) _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org Welcome to Play 2.0! These commands are available: ----------------------------- license Display licensing informations. new [directory] Create a new Play application in the specified directory. You can also browse the complete documentation at http://www.playframework.org.
うまく行っているようだ。
Playプロジェクトを作成するディレクトリに移動して、早速新規プロジェクトを作成。プロジェクト名は、PlayTest。
$ cd /Works $ play new PlayTest _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org The new application will be created in /Works/PlayTest What is the application name? > PlayTest Which template do you want to use for this new application? 1 - Create a simple Scala application 2 - Create a simple Java application 3 - Create an empty project > 1 OK, application PlayTest is created. Have fun!
プロジェクトの雛形が作成された。
今日はこれまで。