J'ai lu que thymeleaf est préféré au lieu de JSP de nos jours. Quel problème thymeleaf résout-il que JSP ne peut pas? Comment est thymeleaf par rapport aux autres moteurs de template?
Eh bien, c'est vraiment une question d'opinion et telle sera ma réponse :)
La principale différence est que les JSP sont compilés en Java tandis que Thymeleaf lit le fichier de modèle, analyse son DOM et lui applique ensuite le modèle. Cela introduit une surcharge de performance et donne aux JSP un Edge de performance , même avec la mise en cache des modèles de Thymeleaf activée. D'un autre côté, cela rend Thymeleaf beaucoup plus facile à développer et voici pourquoi:
Thymeleaf utilise du HTML simple comme modèles. Vous pouvez soit choisir une approche HTML5 pure avec data-th
les attributs ou l'espace de noms personnalisé d'origine th:
les attributs. L'avantage d'utiliser du HTML simple est que vous pouvez l'ouvrir dans un navigateur, ce qui facilite la tâche des concepteurs: les concepteurs et les développeurs peuvent travailler sur le même fichier.
Les modèles Thymeleaf peuvent être utilisés sans serveur d'application et ils fonctionnent également très bien avec les serveurs intégrés. Vous n'avez pas besoin de sauter à travers des cerceaux pour faire des tests d'intégration de vos modèles, ce que vous pouvez faire via la propre bibliothèque de tests de modèles autonome de Thymeleaf ou dans le cadre de tests fonctionnels, par exemple tests d'intégration de vos contrôleurs Spring MVC.
Thymeleaf a une syntaxe plus légère et plus puissante et une meilleure intégration avec l'écosystème Spring. Il a été conçu pour s'intégrer à Spring dès sa conception, mais vous pouvez également l'utiliser en dehors de Spring. Je l'ai trouvé utile pour la génération d'e-mails et de rapports.
Les modèles Thymeleaf permettent une grande réutilisation; vous pouvez créer de petits fragments de modèle et les réutiliser dans d'autres modèles, ce qui est une bouée de sauvetage dans les projets avec beaucoup de modèles. Il a également un excellent support de mise en page prêt à l'emploi, bien que vous puissiez également trouver plugins de communauté si vous avez besoin de plus de flexibilité/puissance.
Avertissement: je n'ai fait aucun développement de Thymeleaf depuis plus d'un an mais d'après ce que je peux voir, cela n'a pas beaucoup changé. Vous pouvez également jeter un coup d'œil à cet article de Spring - bien qu'il soit un peu ancien, il illustre les principales différences.