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

问题描述 投票:0回答:3

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

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

java spring-mvc templates template-engine
3个回答
24
投票

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

当前偏好似乎是:

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

使用实际模板引擎的一大优点是,您被迫将收集数据以呈现和渲染数据的关注点分开;这种分离允许您对模板进行(单元)测试。

但是请注意,行业正在再次转向客户端渲染,其中服务器仅将数据作为 JSON 对象返回,而 Web 应用程序使用 Angular、React、jQuery 或 Ember 等框架来构建页面.

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


15
投票

您可以使用其中任何一个,因为它们受支持。 JSP、FreeMaker 和 Thymeleaf 的想法很相似:您创建一个要渲染的template。 JSP 和 FreeMaker 缺少 Thymeleaf 中提供的一些功能。

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

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

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


4
投票

有很多可用的模板引擎。但 Spring Boot 官方支持 Thymeleaf、FreeMarker、Mustache 和 Groovy Templates。我更喜欢

Thymeleaf
,因为它的可扩展性。

我的帖子中解释了模板引擎各个方面的详细比较:
https://springhow.com/spring-boot-template-engines-comparison/

© www.soinside.com 2019 - 2024. All rights reserved.