Qual é o futuro do template Engine Thymeleaf?

23 respostas
W

Tenho feito meus projeto com Angular, e inclusive já fui entrevistado por empresas pelo fato de buscarem por profissionais que saibam mexer com Angular, mas o que está em questão não é o Angular e sim o Thymeleaf, de uns anos para cá alguns FrameWorks Front-End ficaram bastante populares como VueJs, React.Js e tantos outros, mas o que podemos dizer do Thymeleaf?

O Thymeleaf acho uma tecnologia fantástica, é muito parecida com JSP e foi fácil de aprender, porém hoje tirei para fazer uma breve pesquisa na internet, procurei como perguntas para o Google tipo… E o futuro do Thymeleaf? Evolução do Thymeleaf e não encontrei muitas fontes de informação.

Procurei por vagas de emprego nas principais agência como Catho, InfoJobs, Apinfo ,Vagas e o Indeed, e não encontrei nada, e olhe que o Brasil é um pais que tem muitas empresas de tecnologia.

Procurei por grupos de facebook para Thymeleaf e não encontrei nada, o Angular da versão 2 até o 5 já tem grupos de facebook e acredito que o Thymeleaf apareceu primeiro que o Angular 2.

Será que estou errado sobre o que pesquisei e não estou sabendo de alguma coisa muito boa sobre o Thymeleaf?

Na minha opinião não vejo nada no Thymeleaf que tire os creditos dela ser uma boa tecnologia, ou será que as empresas não compraram a ideia do Thymeleaf por falta de divulgação marqueteira?

23 Respostas

R

A questão é que todo mundo está migrando para SPA’s, e o Thymeleaf é uma tecnologia server-side.

J

Não se prenda a ferramentas. Depois dessa moda surgirão outras. Importante é você ter a base de HTML/javascript no front-end e http/servlet no caso de back-end java.

Acredito que JSP e Tiles tenham maiores legados do que Thymeleaf, eu nunca vi projetos em Thymeleaf.

P

A única coisa que Java ainda pode servir pra web é fazer uma API Rest, mas pra isso pode esquecer JSP ou Thymeleaf.

W

Eu acho um pouco radical essa resposta, é como se dissesse que não existe nenhuma vantagem em usar server-side em projetos, mas por acaso você sabe as vantagens e desvantagens de usar Single-Page Applications?

Se você responder essa pergunta ai eu vou concorda com que disse quando falo…

Não entendi com essa declaração!

Isso quer dizer que com Thymeleaf é impossível criar projetos em API Rest?

Não fique estressado, só estou tentando entender seu ponto de vista! :sweat_smile:

J

Existem vantagens sim em server-side + ajax, problema que Java é improdutivo e maioria corre para PHP, Rails e ASP.NET para estes casos. Se escolheu Java, não tem jeito, tem que usar JSP ao invés desses engines pouco confiáveis, ontem era Tiles, hoje é Thymeleaf… No ASP.NET por exemplo tem o engine razor, que é perfeito para estes casos. Muitos entram na moda “SPA” mesmo o sistema não sendo single page.

W

Porque Java se torna improdutivo?

Estou fazendo essa pergunta porque tenho criado Portfólio para conseguir uma oportunidade no mercado de trabalho, vou até mudar de estado para aumentar minhas chances!

P

Em projetos Java não é mesmo.

Se for um projeto grande com suporte a diversos dispositivos, é mais atraente mover essa funcionalidade pro cliente e se for um projeto pequeno, existem tecnologias com hospedagem mais barata que Java.

Exatamente.

W

Vou pesquisar sobre isso que falou!

J

Você já trabalhou em outra tecnologia?

Se prenda menos a ferramentas. Você chega ao nível de se preocupar se a engine x é pedida no mercado. Tendo a base do JSP você consegue se adaptar a qualquer uma, então pode se candidatar a qualquer vaga pedindo Spring MVC por exemplo.

W

O que qualifica o projeto ser API Rest?
Se o projeto com todos seu métodos , tipo salvar, lista, atualizar e deletar retorna Json isso não qualificaria o projeto sendo API Rest?

Estou perguntando isso porque encontrei no GitHub projetos feitos com ThymeLeaf e que estavam retornando Json.

R

Na verdade não tem muito sentido isso … o Thymeleaf é um mecanismo de template. Você pode usar com qualquer framework MVC, se os seus controllers estão retornando JSON você não está usando o Thymeleaf … Você pode até incluir no classpath do projeto, mas se você está retornando/consumindo JSON não tem sentido manter o Thymeleaf no projeto

J

Tudo é requisição Http.

Este projeto provavelmente usa ou poderia usar engine server-side quando for mais vantajoso, como por exemplo na necessidade de responder ao navegador a página completamente pronta, em uma tacada só, sem onerar o cliente. E usar ajax com json quando necessário atualizar dados durante alguma interação na página requisitada.

P

APIs são consumidas por robos, SPA, apps nativas… Acho que você pode usar thymeleaf pra gerar HTML5 com microformatos como se fosse uma API, mas quase ninguém usa HTML pra isso porque JSON é mais leve.

O que qualifica o projeto ser feito em ThymeLeaf?

W

Eu não entendi porque fez essa perguntas, mas tudo bem… o que qualifica um projeto usar Thymeleaf é somente colocar a biblioteca no arquivo pom.xml, não tem segredos, isso se for um projeto Spring Boot.

<dependency> 
	<groupId>org.springframework.boot</groupId> 
	<artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency>

Tem que também realizar as seguintes importações na pagina;

xmlns:th="http://www.thymeleaf.org" 
   xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
P

E se não for Spring Boot?

W

não estou entendo o objetivo de suas perguntas, eu só sei mexer com Thymeleaf no Spring boot .

P

Se esta funcionando não vejo problema.

W

veja só isso, todo esse método estão retornando Json sendo um projeto feito com Thymeleaf:

@GetMapping 
70 	public ModelAndView pesquisar(CervejaFilter cervejaFilter, BindingResult result 
71 			, @PageableDefault(size = 2) Pageable pageable, HttpServletRequest httpServletRequest) { 
72 		ModelAndView mv = new ModelAndView("cerveja/PesquisaCervejas"); 
73 		mv.addObject("estilos", estilos.findAll()); 
74 		mv.addObject("sabores", Sabor.values()); 
75 		mv.addObject("origens", Origem.values()); 
76 		 
77 		PageWrapper<Cerveja> paginaWrapper = new PageWrapper<>(cervejas.filtrar(cervejaFilter, pageable) 
78 				, httpServletRequest); 
79 		mv.addObject("pagina", paginaWrapper); 
80 		return mv; 
81 	} 
82 	 
83 	@RequestMapping(consumes = MediaType.APPLICATION_JSON_VALUE) 
84 	public @ResponseBody List<CervejaDTO> pesquisar(String skuOuNome) { 
85 		return cervejas.porSkuOuNome(skuOuNome); 
86 	} 
87 	 
88 	@DeleteMapping("/{codigo}") 
89 	public @ResponseBody ResponseEntity<?> excluir(@PathVariable("codigo") Cerveja cerveja) { 
90 		try { 
91 			cadastroCervejaService.excluir(cerveja); 
92 		} catch (ImpossivelExcluirEntidadeException e) { 
93 			return ResponseEntity.badRequest().body(e.getMessage()); 
94 		} 
95 		return ResponseEntity.ok().build(); 
96 	} 
97 	 
98 	@GetMapping("/{codigo}") 
99 	public ModelAndView editar(@PathVariable("codigo") Cerveja cerveja) { 
100 		ModelAndView mv = nova(cerveja); 
101 		mv.addObject(cerveja); 
102 		return mv; 
103 	}
J

Thymeleaf é usado para processar HTML, como você deve ter feito no primeiro método. E no método que retorna json não usa Thymeleaf. Não entendi onde está querendo chegar, são necessidades diferentes. Embora muitos partem pro 8 ou 80 dependendo da moda.

R

Isso aí é Spring MVC … se você tirar o Thymeleaf do projeto e trocar os templates pelo JSP tradicional o código vai continuar funcionando.

V

Boa Noite,

Trabalho a 4 anos com JSF e Spring (Também programo no backend), inclusive construindo UIs intuitivas e produtivas(Ajax e ainda consumindo API REST). Nos projetos dos quais faço parte tudo funciona bem (Sou feliz até hoje). Tudo que me pedem para implementar no JSF, na maioria das vezes, já tem pronto. Só que de uns tempos pra cá surgiu um projeto pra ser feito com Spring-boot(pois até o momento usava do Spring a injeção de dependências e o contexto de transações, além de uns ótimos recursos do spring). Pois bem, comecei a estudar , só que percebi que a maioria dos tutorias(inclusive os excelentes cursos da Alura) utilizam o Spring-boot com o thymeleaf. Aí começou meu dilema, até que ele tem uma curva de aprendizado bem rápida, só que teve umas funcionalidades que penei um pouco pra fazer e que eu já as tinha pronta com JSF, e agora, depois de ter iniciado o projeto com Spring-boot e thymeleaf, vou mudar para JSF e já vi uns tutorias mostrando que isso é perfeitamente possível. Então como o projeto tem um prazo um pouco curto, decide abandonar o thymeleaf(pois não sei se ele tem todos os recursos do JSF) e vou começar a migrar para o JSF. Não quero com isso dizer que o thumeleaf é ruim, mas devido ao meu pouco conhecimento nesse framework(não sei se é correto falar assim) optei mesmo pelo JSF de guerra. Essa foi minha realidade, espero que um dia eu possa ter a oportunidade de me aprofundar no thymeleaf. Outra coisa, em termo de performance, parece que o thymeleaf é ligeiramente mais rápido que o JSF, mas não tenho certeza pois o projeto em JSF que participo é bem mais complexo que o que eu iniciei com o thymeleaf. Um outro fato que me preocupa é que a interface desse menu novo projeto com thymeleaf é feita com o bootstrap e ela já está praticamente pronta só que já tive no passado problemas do bootstrap com o primefaces pois o mesmo usa como base o JQueryUI e alguns componentes tive que intervir no CSS para que não ficasse quebrado.

J

Thymeleaf não sei, nem me arrisco a usar, mas JSTL+EL certamente terá vida mais longa.

R

Acredito que depende do caso, da necessidade.
Se o objetivo é se preparar para o mercado e o mercado pede Angular e React então não é o caso focar no Thymeleaf.
Se você vai produzir algo pra você ou para alguém e conclui que com Thymeleaf será mais fácil e não haverão “efeitos colaterais”. Então é o caso.

Criado 7 de fevereiro de 2018
Ultima resposta 29 de nov. de 2021
Respostas 23
Participantes 6