1

我正在使用播放!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参数之前,一切正常。

我究竟做错了什么?

谢谢。

4

1 回答 1

2

Play 2.0.4中,您必须使用0/1来绑定布尔参数(而不是 false/true)

您的 javascript 中的一些更新应该可以解决此错误:

var withDebug = $("#logs-debug").is(':checked') ? 1 : 0;
于 2013-01-23T09:37:16.030 回答