【问题标题】:What is the advantage of using Thymeleaf instead of JSP in Spring?在 Spring 中使用 Thymeleaf 代替 JSP 有什么好处?
【发布时间】:2018-02-06 11:42:07
【问题描述】:

我想知道在 Spring 中使用 Thymeleaf 而不是 JSP 可以获得哪些优势。

【问题讨论】:

标签: java jsp spring-mvc thymeleaf


【解决方案1】:

通常被引用的优点是:

  • Spring 集成是 Thymeleaf 的一流方面(大量 documentation here)。在这种情况下,“一流”意味着它不是偶然的或部分实现的,它是 Thymeleaf 的一个深思熟虑的、得到良好支持的方面。
  • Spring 表达式语言比 JSP 表达式语言更强大。 “更强大”听起来很主观,但在这种情况下,我们谈论的是与 Spring 的集成,因此 Spring 自己的 EL(具有模型属性、表单支持 bean 和国际化的意识)提供了比普通 JSP 表达式更多的开箱即用。
  • 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 层和后端是由不同的人/专业创作的那么对于网页设计师来说,Thymeleaf 比 JSP 更容易处理。

【讨论】:

  • 1.不相关 2. 通过暴露辅助 bean 很容易克服 - 结果是一样的。 3. 不正确,周期完全相同。 4. 不正确,Thymeleaf 模板在外部与 jsp 文件一样无用。 5. 无关紧要。
猜你喜欢
  • 2011-01-11
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多