1

私は Web アプリケーションと Play フレームワークの両方に不慣れで、私が尋ねている問題は非常に単純かもしれません。しかし、しばらくググってみたところ、良い答えが見つかりませんでしたので、ご容赦ください。

まず、私のプラットフォームは play-2.1.1 + Java 1.6 + OS X 10.8.3 です。

問題の短いバージョン: action="hello?id=100" のフォームの送信ボタンがあります。ただし、ボタンをクリックすると、送信されているリクエストはhello?ではなく のようですhello?id=100。このリクエストのアクションはパラメータidを想定しているため、エラーが発生しhello?ます。

これが完全なセットアップです。

conf/ルート:

GET     /                           controllers.Application.index()
GET     /hello                      controllers.Application.hello(id: Long)

アプリ/コントローラー/Application.java:

package controllers;

import play.*;
import play.mvc.*;

import views.html.*;

public class Application extends Controller {

    public static Result index() {
        return ok(index.render());
    }

    public static Result hello(Long id) {
        return ok("Hello, No. " + id);
    }

}

app/views/index.scala.html

This is an index page.

<form name="helloButton" action="hello?id=100" method="get">
    <input type="submit" value="Hello">
</form>

プレイのドキュメントによると、idはクエリ文字列から抽出されるはず?id=100です。ただし、送信ボタンをクリックすると、リクエストがhello?ではなくhello?id=100になるため、次のようなエラーが発生します。

リクエスト「GET /hello?」の場合 [パラメータがありません: id]

なぜこれが起こっているのか誰か教えてもらえますか?前もって感謝します。

4

1 に答える 1