1

私はプレイを使用しています!v2 で、サーバーからデータを取得しようとする JavaScript メソッドをページに追加しました。dealクライアントは、aとブール値 ( )の 2 つの情報を送信します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({
        ...
    });
}

このメソッドが呼び出されると、アプリケーションはhttp://localhost:9000/mydeal/tailLog?withDebug=false必要な URL パターンである 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 に答える