私は 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]
なぜこれが起こっているのか誰か教えてもらえますか?前もって感謝します。