Thymeleaf 是一个模板引擎,允许您在服务器上呈现您的页面。
一个基本示例如下所示:
@Controller
@RequestMapping("/")
public class SampleViewController {
@GetMapping
public String getIndex(Model model) {
model.addAttribute("message", "duke");
model.addAttribute("order", new Order());
return "index";
}
}
当用户现在请求 / 时,index 模板将使用我们传递给它的 Model 呈现,例如替换:
<h2>
<span th:text="'Hello, ' + ${message}"></span>
</h2>
渲染后
<h2>
<span>Hello, duke</span>
</h2>
这或多或少是静态,因为只有在有人请求此页面时才会进行渲染。
在您的情况下,您需要额外的动态行为。因此,您可以将 JavaScript 引入您的 Thymeleaf 模板并开始使用 SSE(例如,通过关注此 tutorial)。因此,每当从服务器发送事件时,您基本上都会注册到某个 SSE 事件流并在客户端更新您的页面。
您可以将以下内容添加到您的 Thymeleaf 模板中:
<script th:inline="javascript">
</script>
并添加缺少的 JavaScript 部分以使 SSE 正常工作。
因此,使用 Thymeleaf 作为模板引擎来呈现服务器端页面并不限制您将 JavaScript 添加到页面以在客户端具有动态行为(例如,用于 SSE、WebSockets、AJAX 调用)。