我正在使用Play! v2和我在我的页面上添加了一个JavaScript方法,试图从服务器中检索数据。客户端发送2个信息,deal
和布尔值(withDebug
)。
我的routes
文件:
GET /:deal/tailLog controllers.MyController.tailLog(deal: String, withDebug: Boolean)
我也试过了,没有成功:
GET /:deal/tailLog?withDebug=:withDebug controllers.MyController.tailLog(deal: String, withDebug: Boolean)
MyController
类包含以下方法:
public static Result tailLog(String deal, Boolean withDebug) {
...
}
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(Routes.javascriptRouter("jsRoutes",
...,
controllers.routes.javascript.MyController.tailLog()
));
}
最后,JavaScript调用是:
function tailLog() {
var withDebug = $("#logs-debug").is(':checked');
jsRoutes.controllers.MyController.tailLog('mydeal', withDebug).ajax({
...
});
}
调用此方法时,我的应用程序正在调用URL http://localhost:9000/mydeal/tailLog?withDebug=false
,这是我想要的URL模式,但失败并显示404错误消息。
请注意,在我添加withDebug
参数之前,一切正常。
我做错了什么?
感谢。
答案 0 :(得分:2)
在Play 2.0.4中,您必须使用 0/1 来绑定布尔参数(而不是false / true)
您的javascript中的一点点更新应该可以解决此错误:
var withDebug = $("#logs-debug").is(':checked') ? 1 : 0;