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

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

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


答案 1

服务器端呈现的最佳做法已转向使用模板引擎。它们负责将数据与模板合并到实际输出中。

当前首选项显示为:

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

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

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

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


答案 2

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

我喜欢Thymeleaf的想法,你可以将模板加载到浏览器,看看页面将如何呈现(真实)。百里香叶模板是功能齐全的HTML页面。这在JSP中是不可能的,因为你有JSP标签,而FreeMaker有占位符

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

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