LoginSignup
3
5

More than 5 years have passed since last update.

PlayFrameworkでのリクエストパラメーターの受け取り方

Last updated at Posted at 2017-11-22

忘れそうなのでメモ

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配列でくるのがちょっとめんどくさいですが、フォームクラスを使わないお手軽なフォームにつかえそう。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5