GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Qual é o futuro do template Engine Thymeleaf?

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?

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

2 Curtidas

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.

3 Curtidas

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

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:

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.

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!

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.

Vou pesquisar sobre isso que falou!

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.

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.

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

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.

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?

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">

E se não for Spring Boot?

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

Se esta funcionando não vejo problema.

1 Curtida

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 	}

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.

1 Curtida