首页 > 解决方案 > 使用 ftl 模板和 Spring Boot 进行动态页面更新

问题描述

我与使用带有 FTL (Freemarker) 模板的 Spring Boot 相关的问题。有没有办法动态更新我的页面?例如:我有两个帐户的一个通用列表。当第二个用户更改该列表时,我希望在我的页面上看到这些更改而无需重新加载页面。有没有办法意识到这一点?我知道 React 有这种可能性,但是我有很多带有 ftl 模板的代码。很高兴得到任何答案

标签: javaspring-bootfreemarker

解决方案


FreeMarker 生成静态 HTML 输出,仅此而已。

在网站中,完成您要求的操作(更改页面内容而不重新加载)的唯一方法是使用 JavaScript(React 在下面也使用 JavaScript)。

您可以检测到有人何时使用 WebSocket、长轮询等更改了某些内容(例如用户列表)。

WebSockets 的 Spring 指南

Baeldung 使用 Spring 介绍 WebSocket

Ps.:您可能必须使用 JavaScript 重复一些打印逻辑,例如

  1. 用户 A 打开视图
  2. 用户 B 打开视图
  3. 用户 B 编辑了一些东西
  4. 在服务器端,您广播新的 WebSocket 消息,以通知每个连接的用户发生了一些变化(可以详细说明,例如ID 123 登录的用户已从 "donald" 更改为 "dolan"
  5. 在客户端,您收听广播的消息。当您收到4中描述的消息时,您会找到 id 为123的用户的表行,并将其登录名更改为dolan

推荐阅读