Renderização de Templates com Thymeleaf no Spring Boot

O Thymeleaf atua como um motor de templates do lado do servidor para Java, sendo amplamente adotado no ecossistema Spring Boot para a geração de páginas web dinâmicas e interface de usuário.

Configuração de Dependências

Para iniciar, é necessário incluir os starters do Spring Web e do Thymeleaf no arquivo de configuração do Maven (pom.xml).

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

Definição de Propriedades

No arquivo application.yml, configure o comportamento do motor de templates. Abaixo está um exemplo ajustando o caminho dos templates e desativando o cache para o ambiente de desenvolvimento.

spring:
  thymeleaf:
    cache: false
    prefix: classpath:/templates/
    suffix: .html
    encoding: UTF-8

Implementação do Controlador

Crie uma classe de controlador para interceptar as requisições HTTP e injetar os dados necessários no contexto do modelo (Model).

package com.exemplo.projeto.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class VisualizacaoController {

    @GetMapping("/pagina-inicial")
    public String carregarPagina(Model modelo) {
        modelo.addAttribute("tituloPagina", "Bem-vindo ao Thymeleaf");
        return "index";
    }
}

Criação do Template HTML

Dentro do diretório src/main/resources/templates/, crie o arquivo index.html. Note o uso do namespace th para processar as expressões dinâmicas.


<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Exemplo de Renderização</title>
</head>
<body>
    <h1 th:text="${tituloPagina}">Título Padrão</h1>
</body>
</html>

Execução e Validação

Inicie a aplicação Spring Boot. Ao acessar o endpoint http://localhost:8080/pagina-inicial através de um navegador, o conteúdo dinâmico será renderizado corretamente.

Características Principais do Thymeleaf

  • Prototipagem Natural: Os arquivos HTML podem ser abertos diretamenet no navegador como páginas estáticas, facilitando o trabalho em equipe entre front-end e back-end.
  • Alta Customização: Permite a criação de dialetos e tags personalizadas para cenários complexos.
  • Gestão de Cache: Em ambientes de produção, ativar o cache de templates (spring.thymeleaf.cache=true) melhora significativamente a performance.

Anotações Essenciais do Spring MVC

Para o roteamento e manipulação de dados nas requisições, as seguintes anotações são frequentemente utilizadas em conjunto com o Thymeleaf:

  • @Controller: Indica que a classe é um controlador Spring MVC.
  • @RequestMapping: Mapeia requisições HTTP para métodos específicos ou classes inteiras.
  • @GetMapping e @PostMapping: Variantes de @RequestMapping restritas aos métodos HTTP GET e POST, respectivamente.
  • @ModelAttribute: Utilizado para vincular parâmetros de requisição a objetos ou adicionar atirbutos ao modelo.
  • @PathVariable: Extrai valores diretamente do URI da requisição.
  • @RequestParam: Captura parâmetros de consulta da URL.

Tags: SpringBoot thymeleaf java SpringMVC TemplateEngine

Publicado em 6-28 18:11