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

Nik*_*ntz 26 java jsp template-engine thymeleaf

我读到现在首选的是thymeleaf而不是JSP.百事可乐解决了JSP无法解决的问题?百里香叶与其他模板引擎相比如何?

Mil*_*vić 33

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

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

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

  • Thymeleaf模板可以在没有应用程序服务器的情况下使用,它们也可以很好地与嵌入式服务器配合使用.你不必跳火圈做你的模板,你可以通过做集成测试Thymeleaf自己独立的模板测试库或功能测试,例如,您的Spring MVC控制器的集成测试的一部分.

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

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

免责声明:我在一年多的时间里没有做过任何Thymeleaf的开发,但从我所看到的,它没有那么大的变化.你也可以看一下Spring的这篇文章 - 虽然它有点陈旧,但它确实说明了主要的区别.