在Play Framework中对AJAX调用进行部分呈现

时间:2015-01-19 13:21:27

标签: java javascript playframework playframework-2.3 twirl

我在这里看到了一些类似的问题,但其中没有一个真正有助于解决我的问题。

我在页面上有一个表格和一个按钮需要在点击时重新渲染表格(使用不同的分页参数,排序等)。

我尝试了几种方法,并且我成功将值传递给带有嵌入式js路由器的控制器,但由于这些值通过ajax调用传递给后端,因此我无法重新呈现该表。

我的嵌入式路由器如下:

@helper.javascriptRouter("jsRoutes")(
    routes.javascript.UserController.getUsers
)

我将从页面上调用它,例如: $ .ajax(jsRoutes.controllers.UserController.getUsers(3,true,“login”));

现在,最后但并非最不重要的是,我想用getUsers()调用的结果重新呈现表。

只需致电:

public Result getUsers(int size, boolean isAsc, String sortBy) {
    ......
    Logger.info("Returning " + size + " users");
    return Results.ok(usersPage.render(userDtos));
}

对我不起作用。

1 个答案:

答案 0 :(得分:0)

有几种方法。

最简单的方法是使用播放控制器以HTML格式呈现表格,然后使用$('#mytable').load(...)将其拉到页面上。

更灵活的是让播放控制器在JSON format中返回数据,然后在浏览器中将其转换为HTML。这可以手动完成,使用客户端模板引擎(例如http://handlebarsjs.com/)或使用完整的javascript框架(如AngularJS或Ember.js)。