百里香的解决方案是什么?

时间:2016-08-06 16:11:32

标签: java jsp thymeleaf template-engine

我读到现在首选的是百里香,而不是JSP。哪个问题可以解决JSP无法解决的问题?百里香叶与其他模板发动机相比如何?

1 个答案:

答案 0 :(得分:30)

嗯,这真的是一个基于意见的问题,这将是我的答案:)

主要区别在于JSP被编译为Java servlet类,而Thymeleaf读取模板文件,解析其DOM,然后将模型应用于它。这引入了性能开销,并且即使启用了Thymeleaf的模板缓存,也为JSP提供了性能优势。另一方面,它使Thymeleaf更容易开发,这就是原因:

  • Thymeleaf使用纯HTML作为模板。您可以选择具有data-th属性的纯HTML5方法或原始自定义命名空间th:属性。使用纯HTML的好处是你可以在浏览器中打开它,这使设计人员更容易完成他们的工作:设计人员和开发人员都可以处理同一个文件。

  • Thymeleaf模板可以在没有应用程序服务器的情况下使用,它们也可以很好地与嵌入式服务器配合使用。您不必跳过箍来对模板进行集成测试,您可以通过Thymeleaf's own standalone template testing library或作为功能测试的一部分进行集成测试,例如:您的Spring MVC控制器的集成测试。

  • Thymeleaf具有更轻量级和更强大的语法,并且与Spring生态系统更好地集成。它的设计旨在与Spring的概念集成,但您也可以在Spring之外使用它。我发现它对电子邮件和报告生成很有用。

  • Thymeleaf模板可以很好地重复使用;您可以创建小模板片段并在其他模板中重复使用它们,这是具有大量模板的项目中的救星。它还具有开箱即用的出色布局支持,但如果您需要更多灵活性/功能,也可以找到community plugins

免责声明:我在一年多的时间里没有做过任何Thymeleaf的开发,但从我看到的情况来看,它并没有发生那么大的改变。你也可以看一下Spring的this article - 虽然它有点陈旧,但它确实说明了主要的区别。