在get查询中传递变量Play

时间:2015-07-22 10:26:55

标签: javascript java playframework

我正在使用Play Framework,我有一个名为“id”的变量。我已经定义了一个如下所示的函数:

setInterval(function() {
$.get("file2", function(id){
   $("#result").html(id);
    })
}, 5000);

我想要做的是获取我在file2.html中绘制的内容,并将变量id传递给此文件,因为它需要它。控制器如下所示:

public static void file2(Long id) {
        //Some operations with the required variable id
        render(variable);// Render the result
    }

当我尝试编译它时,它告诉我id未定义。它在file1.html中定义,但显然我将它传递给file2.html的方式不正确,我无法执行控制器所需的操作,因为它需要我传递错误的id。

关于如何做到这一点的任何想法? PS:我已经检查过file1.html中的id是否可用,是的。

PS2:这是错误代码:

执行例外

IllegalArgumentException occured : id to load is required for loading

1 个答案:

答案 0 :(得分:1)

您需要将ID作为网址的一部分传递。

另外,我建议将它放在一个函数中,该函数可以使用setTimeout在回调中再次调用自身,以便等到你在允许另一个调用之前得到响应。在拨打电话的时间超过5秒的情况下,这可以防止事情变得混乱。

试试这个......

// main function for calling your server-side method
function file2(id) {
    $.get("file2?id=" + id, function(data) {
        $("#result").html(data);
        setTimeout(function() {
            file2(id);
        }, 5000);
    });
}

// run it once after 5 seconds and then in will run itself after that
setTimeout(function() {
    file2(id);
}, 5000);