我对 web 应用程序和 play 框架都是新手,我问的问题可能非常幼稚。但是,我用谷歌搜索了一会儿,找不到一个好的答案,所以请多多包涵。
首先,我的平台是 play-2.1.1 + java 1.6 + OS X 10.8.3。
问题的简短版本:我有一个带有 action="hello?id=100" 的提交按钮形式。但是,当我单击按钮时,发送的请求似乎是hello?
而不是hello?id=100
. 此请求的操作需要参数id
,所以我得到一个错误hello?
。
这是完整的设置。
配置/路由:
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);
}
}
应用程序/视图/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]
有人可以告诉我为什么会这样吗?先感谢您。