忘れそうなのでメモ
##version
2.5.10
Java 1.8
##GETでのリクエスト
まずはFormなりなんなりリクエストを作成
<form method="get" action="/request">
<input type="text" name="name">
<input type="submit value="送信">
</form>
とか
<a href="/request?name=Hyu"
conf/routesでパスの設定
GET /request controllers.Controller.send
Controllerでリクエストの受け取り
public Result send() {
//リクエストの値を代入してます。
String name = request().getQueryString("name");
//result.scala.htmlに遷移
return ok(views.html.result.render(name));
}
上記の通り、
request().getQueryString("name属性の値")
でとりだせます。
routesに下記の記述での方法でも可能。
GET /request controllers.Controller.send(name: String)
この場合はControllerは引数でリクエストパラメーターが取得できる。
public Result send(String name){
return ok(views.html.result.render(name);
}
##POSTでのリクエスト
同じくフォーム作成
<form method="POST" action="/request">
<input type="text" name="name">
<input type="submit" value="送信">
</form>
POST /request controllers.COntroller.send
Controllerでリクエスト受け取り
public Result send() {
//リクエストパラメーターはMapに格納されてます。
//キー = name属性の値, value = String配列です
Map<String, String[]> requestParam =
request().body().asFormUrlEncoded();
String[] input = requestParam.get("name");
String name = input[0];
return ok(views.html.result.render(name);
}
POSTの場合はMapで、そしてString配列でくるのがちょっとめんどくさいですが、フォームクラスを使わないお手軽なフォームにつかえそう。