Playネタ
エラーと対処方法をつらつらメモしていく。
やりたかったこととして、GETで/post/editってURIのあとに数字がきたら、その数値をPlayのメソッド(TestController.getEdit)に引数として渡す。って流れをしたかった。
最初に「こんなかんじかな? 」って、書いた記述
GET /post/edit{<[0-9]+>id} controllers.TestController.edit(id)
一応。できたんだけど、色々ハマったのでメモ。
メソッド名の間違い
まずメソッドがまちがえていた(お恥ずかしい)
error: Using different overloaded methods is not allowed.
メソッド名を治す
GET /post/edit{<[0-9]+>id} controllers.TestController.edit(id)
引数をStringにしちゃうけど、お前の予定ではLongじゃねーの?ってエラー
こんな感じのエラーが
type mismatch; found : String required: Long
指定なければ、デフォでStringになるらしい。引数の型を修正する
GET /post/edit{<[0-9]+>id} controllers.TestController.getEdit(id : Long)
次は突如エラーが!!!
これで正解とおもったら突如エラーが!
value postEdit is not a member of controllers.ReverseTestController
エラー内容はわけわかめ。(なんか新しいコントローラークラスになっているし・・・)
で、ドキュメント読み返したら、どうやら記載の仕方が悪かった。
変数名を前にして$を付与したらできた。解決
GET /post/edit/$id<[0-9]+> controllers.TestController.getEdit(id: Long)
これでうまくできました。