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

Ser*_*tin 5 java templates template-engine spring-mvc

您好,感谢您的时间

我正在学习spring MVC,并希望创建网站.主要问题是模板系统.

我应该使用JSP/JSF/Apache FreeMarker/Thymeleaf还是其他什么?

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

小智 10

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

目前的偏好似乎是:

  1. Thymeleaf(http://www.thymeleaf.org)
  2. FreeMarker(http://freemarker.org/)
  3. Apache Velocity

JSP和JSF完全不同的东西已经过时了.

使用实际模板引擎的一大优点是,您不得不将收集数据的问题与呈现数据分开并呈现数据,并允许您(单元)测试模板.

业界正在再次转向客户端呈现,其中服务器仅将数据作为JSON对象返回,并且Web应用程序使用诸如Angular,React,jQuery或Ember之类的框架来构建页面.

  • 请注意,从5.0.1版本开始,Spring已不再支持Velocity支持:https://jira.spring.io/browse/SPR-13795 (2认同)

小智 7

您可以使用其中任何一种,因为它们受支持。JSP,FreeMaker和Thymeleaf在思想上相似:您创建要呈现的模板。JSP和FreeMaker缺少Thymeleaf中提供的某些功能。

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

JSF 基于组件,因此是另一种方法。

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