Scala Play 2.0(2) MVCのルーティングとコントローラ
イランがアルゼンチン相手に頑張ってるなー。前半0-0で折り返し。
まあ、今回もこれのハンズオンです。
だけど、俺ってばgetBytes思い出すのにどれだけ時間かけてんだよと。。。
conf/routesファイルに
GET /sample1 controllers.SampleController.sample1
GET /sample2 controllers.SampleController.sample2
な感じで書くと、そのメソッド、コンテキストでController, Actionが呼ばれますよと。
object SampleController extends Controller {
def sample1 = Action {
...
}
def sample2 = Action ...
こんな感じ。request引数もこんな感じ。
def sample1 = Action { request =>
implicitで暗黙引数を使ってこんな感じも可能。
def say = Action { implicit request =>
Ok(greeting("Hello"))
}
private def greeting(say: String)(implicit req: RequestHeader) = say + "," + req.remoteAddress
で、次のヘルパ関数を使わずにSimpleResultを使ったとこではまった。
最初、SimpleResultコンストラクタの引数がおかしいというエラーがでたが、これは単純にカンマを忘れてた凡ミス。次に、Enumeratorが見つからないいわれたけど、これは
import play.api.libs.iteratee.EnumeratorすればOK。で、最後のEnumeratorのエラーが
type mismatch; found : play.api.templates.HtmlFormat.Appendable (which expands to) play.api.templates.Html required:
Array[Byte]
ええ、結局は.toString().getBytes()しただけなのだけど、1、2時間はまってもたorz。
あとは来週に。
アルゼンチン戦後半観て寝ます。