2012-01-01から1年間の記事一覧
ちょっと気になって、enchant.jsを調べ始めた。ExtJSもそうだけど、結局クライアント側のソースがJavaScriptだけ記述すれば良いのであれば、 JavaScriptを呼び出すだけのHTMLって余計というかいらないんだよね。ということで、JavaScriptだけ指定して、実行…
sbt でeclipseコマンドを使えるようにする ・project/plugins.sbtに追加 addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.0.0")・eclipsifyコマンドとどう違うのかは永遠の謎。
いちいちJSON変換クラスなんか作っていられるか!!とお怒りの方に。 Gsonで変換してしまいましょう。・project/Build.scalaにGsonの追加 val appDependencies = Seq( // Add your project dependencies here, "com.google.code.gson" % "gson" % "1.7.1" )…
・配列、リストもOK def sample3 = Action { implicit request => val obj = Array(ResultData("hoge","123-4567",17),ResultData("fuga","123-4567",17)) Ok(toJson(obj)) }・結果 [{"name":"hoge","zip":"123-4567","age":17},{"name":"fuga","zip":"123-4…
Play1.Xならcase classはすんなり返せていたのに、Play2.0だとちとメンドクサイ。 こちらを参考にしたが、うまく動かなかったので、 trait Protocolではなくobject Protocolにしたところ、動作できました。・case classと変換クラス package modelsimport pl…
・toJsonってどこ?→ play.api.libs.json.Json import play.api.libs.json.Json._ def sample3 = Action { implicit request => Ok(toJson( Map("name"->"hoge","zip"->"123-4567","age"->"17") )) }
とりたてて難しい話ではないけれど、main.scala.htmlをコピって、extjsをインクルードする行を追加した extjsmain.scala.htmlを用意して、テンプレートからはextjsmain()を呼ぶように変更。・extjsmain.scala.html @(title: String)(content: Html)<html> <head> <title>@title</title> <meta charset="UTF-8" /> </meta></head></html>
MVC嫌いなので、テンプレートにコントローラを渡して、コントーラのメソッドを呼び出します(笑)・routes GET /sample2 controllers.Sample.sample2・Sample.scala def sample2 = Action { implicit request => val obj = controllers.Sample Ok(views.html.S…
Play2.0のroutesの設定は以前よりもだいぶ厳格になっているので、以下のような記述はできないみたい。 /{contoller}/api/{method} {contoller}.{method} Play1.xで作っていたアプリは、この記述でいろいろなAPI定義していたので、Play2.0でも似たような感じ…
groovyテンプレートって今思うと楽だったんだなと痛感。・テンプレート側 @(title:String)(implicit request: play.api.mvc.Request[AnyContent])・コントローラ側 def mainmenu = Action { implicit request => Ok(views.html.mainmenu("")) }implicitって…
以前(1.2.x)のよりはだいぶ書き方が楽になってますね。 同名のパラメータが複数あった場合?を想定しているので、 queryStringがMap[String,Seq[String]] となってますね。 ここだけちょっとメンドクサイけど、しょうがないね。 def mainmenu = Action { req…
もっとうまいやり方があるんだろうけど、今の私にはコレが限界…・conf/routesに追加。:pに表示させたいページ名を指定する GET /route/:p controllers.Application.route(p:String)・Application.routeメソッドを追加 def route(p:String) = Action { val pa…
・views/Sample/sample.scala.htmlを配置して、コントローラからテンプレートを呼び出す def sample = Action { Ok(views.html.Sample.sample("Sample")) }Eclipse上で修正しても最初はエラー表示となるので、一回Play上でテンプレートをコンパイルさせてお…
・コントローラ以外のScalaソースを作ってコンパイルしてくれるか実験 とくに、問題なくコンパイル&コントローラからの呼び出しはできました。 まあ、当たり前か。
・conf/routeに追加 Play1.X系のように*を指定してみたところこれには対応できないっぽい。 指定できるのはGET/POST/PUT/DELETE/HEADだそうです。 GET /mainmenu controllers.Application.mainmenu・Application.scalaにmainmenuメソッドを追加 def mainmenu…
・まずはPJ作成 play new 新規PJ名・playコマンドでPJインスタンス?を起動 cd 新規PJ名 play ・とりあえず起動 [新規PJ名] $ runブラウザでlocalhost:9000にアクセス。 ctrl-d で停止。 サーバーの起動ポートを変更するには、 conf/application.confかなと…
今週はPlay2.0の勉強のため会社を1週間お休みしているところ(半分嘘)メモがてら自分の調べたことをつらつらと書いていこうかと思います。