java - Play Framework 中 AJAX 调用的部分渲染

标签 java javascript playframework playframework-2.3 twirl

我在这里看到了一些类似的问题,但它们都没有真正帮助解决我的问题。

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

我尝试了几种方法,并且成功地将值传递到带有嵌入式 js 路由器的 Controller ,但由于这些值是通过 ajax 调用传递到后端的,所以我无法重新渲染表格。

我的嵌入式路由器如下所示:

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

我将从页面上调用它,如下所示: $.ajax(jsRoutes.controllers.UserController.getUsers(3, true, "登录"));

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

只需调用:

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

不适合我。

最佳答案

有几种方法。

最简单的方法是使用一个 Play Controller ,以 HTML 形式呈现表格,然后使用 $('#mytable').load(...) 将其拉到您的页面上。 .

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

关于java - Play Framework 中 AJAX 调用的部分渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28025606/

相关文章:

java - View 中的可绘制对象被压扁

javascript - ESLint 不能在 VS Code 中工作?

javascript - 如何将 jquery Slidetoggle 与多个内容框一起使用?

java - 在 Play 中动态设置 CompletionStages 的线程池大小!与 Akka

java - 如何在 Play Framework 项目中使用相对路径访问资源文件?

java - DFS 方法无法正常工作

java - 对于生产者-消费者模式哪种实现更好 : ArrayBlockingQueue or Arraylists with Exchangers

javascript - PHP 日期输出与 fooTable 中使用 formatString 相同

scala - Play框架重启时如何重新加载akka调度程序

java - 我可以在 xxxx-validation.xml 中为列表配置验证吗?