在Spring中使用Thymeleaf代替JSP有什么好处?

时间:2017-08-29 06:18:07

标签: java jsp spring-mvc thymeleaf

我想知道在Spring中使用Thymeleaf而不是JSP来获得什么样的优势。

1 个答案:

答案 0 :(得分:7)

常被列举的优点是:

  • Spring集成是Thymeleaf的一流方面(很多documentation here)。在这种情况下,“头等舱”意味着它不是偶然的或部分实施的,它是Thymeleaf的一个深思熟虑,受到良好支持的方面。
  • Spring表达式语言比JSP表达式语言更强大。 “更强大”听起来是主观的,但在这种情况下,我们讨论的是与Spring的集成,因此Spring自己的EL(具有模型属性,形式支持bean和国际化的意识)提供了比vanilla JSP表达式更多的开箱即用。 / LI>
  • Thymeleaf提供了有用的格式化工具,例如${#calendars.format(...)}${#strings.capitalize(...)},它们与Spring完美集成,例如您可以将Spring MVC传播的模型bean传递给这些函数。
  • Thymeleaf缩短了构建/部署/测试反馈循环。这是一个例子;假设您要更改网页的布局或样式。在Thymeleaf中,这涉及:(1)打开.html模板,编辑它并(可能)编辑它的链接.css文件; (2)点击F5在浏览器中刷新; (3)重复直到开心。相比之下,JSP实现中的相同活动将涉及:(1)将应用程序部署到开发服务器中; (2)启动它; (3)做出一些改变; (4)重新部署(或热部署)变更; (5)重复直到开心。
  • 最后一点强烈暗示了JSP的这种局限性;它们不能在容器外使用。相比之下,Thymeleaf模板可以在容器外部使用。例如; Spring的MVC测试支持与Thymeleaf完美集成,可以允许您在测试环境中渲染(并测试/断言)已解析的Thymeleaf模板,而无需启动您的应用程序。
  • Thymeleaf模板看起来像HTML(术语是“自然模板”),它们甚至可以在浏览器中呈现为静态内容(带有模板/原型数据),因此如果您的Web层和后端由不同的人/专业化创作那么网页设计师比JSP更容易处理Thymeleaf。