Spring JSP MVC和Thymeleaf MVC有什么区别?哪种是Spring Web设计的最佳选择?
Spring JSP MVC和Thymeleaf MVC有什么区别?哪种是Spring Web设计的最佳选择?
它们都是Spring MVC的视图层。首先,最基本的区别在于文件扩展名(.jsp
和.html
)。
评论中的Branislav是正确的,JSP
不是一个模板引擎。它被编译成servlet,然后servlet提供Web内容。另一方面,Thymeleaf是一个模板引擎,它接收HTML
文件,解析并生成Web内容。
与JSP
视图相比,Thymeleaf更像是一个类似HTML的视图。
我们可以在thymeleaf中使用原型代码: http://www.dineshonjava.com/2015/01/thymeleaf-vs-jsp-spring-mvc-view-layer.html#.WEkLzLKLTig
由于它更像是HTML代码,thymeleaf代码更易读(当然你可以破坏它并创建难以理解的代码,但最终与.jsp
文件相比,它更容易阅读)
标准方言(表达式语言)比JSP表达式语言更强大
如果我们把所有这些放到一个极端,thymeleaf在这里是比较慢的。
我建议您查看此文档:http://www.thymeleaf.org/doc/articles/thvsjsp.html
Thymeleaf是一个模板解析器,它处理模板并生成纯HTML。
在我看来,Thymeleaf更好,因为它有良好的基本原则,并利用浏览器的自然行为。
JSP使得HTML很难阅读,它变成了一种奇怪的HTML和Java代码混合体,这在设计师和开发者之间的沟通中会产生很多问题。
Thymeleaf保留HTML,只添加直观且非常表达力的标签。它使您能够在离线模式下工作,并且与Spring完美配合,我绝对建议使用它而不是JSP。
http://www.dineshonjava.com/2015/01/thymeleaf-vs-jsp-spring-mvc-view-layer.html?m=1
JSP
不是一个模板引擎。它被编译为 servlet,然后 servlet 用于提供 web 内容。另一方面,Thymeleaf
是一个模板引擎,它接收 HTML
文件,解析并生成要提供的 web 内容。如果在 Thymeleaf 中加入大量逻辑,很容易创建难以阅读的代码。这也会导致它成为最慢的模板引擎之一。因此,SO 对于可能产生基于个人观点和经验的答案的问题有严格的关闭规定。 - Branislav Lazic