Difference between spring JSP MVC and Thymeleaf MVC

SpringSpring Mvc

Spring Problem Overview


What is the difference between spring JSP MVC and Thymeleaf MVC? Which one is best way for spring web design ?

Spring Solutions


Solution 1 - Spring

Both of them are view layers of Spring MVC. Firstly, the very basic difference is the file extensions. (.jsp & .html)

Branislav in the comments is right, JSP is not a template engine. It's compiled to the servlet and then the servlet is serving web content. On the other hand, Thymeleaf is a template engine which takes the HTML file, parses it and then produces web content which is being served.

  • Thymeleaf is more like an HTML-ish view when you compare it with JSP views.

  • We can use prototype code in thymeleaf : http://www.dineshonjava.com/2015/01/thymeleaf-vs-jsp-spring-mvc-view-layer.html#.WEkLzLKLTig

  • Since it is more HTML-ish code, thymeleaf codes are more readable (of course you can disrupt it and create unreadable codes, but at the end, it will be more readable when you compare it with .jsp files)

  • Standard Dialect (The expression language) is much more powerful than JSP Expression Language

  • If we put all this to an edge, thymeleaf is the slow one here.

I would suggest you to take a look at this doc : http://www.thymeleaf.org/doc/articles/thvsjsp.html

Solution 2 - Spring

Thymeleaf is template resolver that process template and produce pure html.

Thymeleaf is way better in my opinion because it have good underlying priciples and exploits natural behaviour of browsers.

Jsp makes html hard to read, it becomes weird mixture of html and java code which makes a lot of problems in comunication between designer - developer.

Thymeleaf preserves html and only adds tags that are intuitive and very expressive. It enables you to work in offline mode and it works great with spring and I definitely recommend it above jsp.

http://www.dineshonjava.com/2015/01/thymeleaf-vs-jsp-spring-mvc-view-layer.html?m=1

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionZafer YilmazView Question on Stackoverflow
Solution 1 - SpringPrometheusView Answer on Stackoverflow
Solution 2 - SpringZildyanView Answer on Stackoverflow