我应该在 Spring MVC 中使用什么模板引擎?

What template engine should I use in Spring MVC?

我正在学习 Spring MVC 并想创建一个站点。主要问题是 模板系统 。我应该使用 JSP / JSF / Apache FreeMarker / Thymeleaf 还是其他什么?

我看到很多关于这个主题的讨论,但都已经过时了。所以,我很好奇,现在有什么好?

您可以使用它们中的任何一个,因为它们是受支持的。 JSP,FreeMaker 和 Thymeleaf 在想法上是相似的:您创建一个要渲染的 模板 。 JSP 并且 FreeMaker 缺少 Thymeleaf 中可用的一些功能。

我喜欢 Thymeleaf 的想法,您可以将模板加载到浏览器并查看页面将如何呈现(真实)。 Thymeleaf 模板功能齐全 HTML 页面。 在 JSP 有 JSP 标签和 FreeMaker 有 是不可能的占位符.

JSF 基于组件,因此这是一种不同的方法。

如果必须选择,我会使用 Thymeleaf。

服务器端渲染的最佳实践已经转向使用模板引擎。这些负责将数据与模板合并到实际输出中。

当前偏好似乎是:

JSP 和 JSF 是完全不同的东西,已经过时了。

使用实际模板引擎的最大好处是您被迫将收集数据以呈现和呈现它的关注点分开;这种分离允许您(单元)测试模板。

但是请注意,该行业正在再次转向 客户端呈现 ,其中服务器只是 returns 数据作为 JSON-对象和 Web 应用程序使用一些框架,如 Angular、React、jQuery 或 Ember 来构建页面。

编辑注意事项:列表最初包括 Velocity,但 Spring 不再支持它。

有许多可用的模板引擎。但是 Spring Boot 正式支持 Thymeleaf、FreeMarker、Mustache 和 Groovy 模板。我的偏好是 Thymeleaf 因为它的可扩展性。

下面对模板引擎的各个方面进行了详细的比较post。

https://springhow.com/spring-boot-template-engines-comparison/