Java Thymeleaf – Estruturas de condição e repetição

Neste artigo veremos como utilizar estruturas de condição e as estruturas de repetição da template engine Thymeleaf.

Cleyson Lima 25 de março de 2021

Vimos no último artigo dessa série como enviar e exibir variáveis Java em templates com o Thymeleaf. Continuando a série, agora veremos como utilizar estruturas de condição e repetição no Thymeleaf.

Desenvolvedor Java
Formação: Desenvolvedor Java
A formação Desenvolvedor Java da TreinaWeb tem como objetivo apresentar o desenvolvimento através do Java e todo o ecossistema para desenvolvimento da Oracle. Nesta formação, são desde tópicos básicos como o paradigma orientado a objetos, a preparação do ambiente de desenvolvimento para o Java através do Eclipse e o controle de versão de código através do Git e do GitHub. Até aspectos mais avançados como acesso a bancos de dados relacionais e o desenvolvimento de aplicações web com o Java.
CONHEÇA A FORMAÇÃO

Estruturas de condição

Para utilizar estruturas de condição no Thymeleaf é bem simples. Imagine que temos, em uma variável, a representação de um usuário com seu ID, nome e tipo do usuário (cliente ou funcionário) e queremos exibir em um template a frase “Bem-vindo cliente” ou “Bem-vindo funcionário” a depender do seu tipo.

Este é um exemplo claro do uso de estruturas condicionais no Thymeleaf:

package br.com.treinaweb.estruturasrepeticaocondicaothymeleaf.controllers;

import java.util.HashMap;
import java.util.Map;

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

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(ModelMap model) {
        Map<String, String> usuario = new HashMap<>();
        usuario.put("id", "1");
        usuario.put("nome", "João da Silva");
        usuario.put("tipo", "funcionario");

        model.addAttribute("usuario", usuario);

        return "home";
    }
}

Ao enviar a variável usuario para o template home.html, agora só é preciso verificar o valor na chave tipo:

<!DOCTYPE html>
<html lang="pt-br">
<head>
  <title>Thymeleaf - Estruturas de Condição</title>
</head>
<body>
  <h1 th:if="${usuario.tipo == 'cliente'}">Bem-vindo cliente</h1>
  <h1 th:if="${usuario.tipo == 'funcionario'}">Bem-vindo funcionário</h1>
</body>
</html>

Agora, ao acessar o template home.html no navegador, teremos o seguinte resultado:

Página com o resultado da estrutura de condição do Thymeleaf

A sintaxe das estruturas de condição no Thymeleaf é bem simples, basta colocar o atributo th:if na tag em que deseja condicionar a exibição.

Estrutura de repetição

O uso de estruturas de repetição também é algo muito simples no Thymeleaf. Imagine que temos uma lista de nomes de usuários e queremos percorrê-la para exibir em nossa página.

Para isso, basta utilizar um forEach e percorrer toda a lista exibindo os nomes como podemos ver abaixo:

package br.com.treinaweb.estruturasrepeticaocondicaothymeleaf.controllers;

import java.util.ArrayList;
import java.util.List;

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

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(ModelMap model) {
        List<String> usuarios = new ArrayList<>();
        usuarios.add("Isabela Rosa Eliane Carvalho");
        usuarios.add("Luna Stella Freitas");
        usuarios.add("Edson Luís Gael Caldeira");
        usuarios.add("Aline Mariana Nicole Lima");
        usuarios.add("Kauê Kaique Brito");

        model.addAttribute("usuarios", usuarios);

        return "home";
    }
}

Agora, para exibir o conteúdo da variável usuarios no template, utilizamos a seguinte sintaxe:

<!DOCTYPE html>
<html lang="pt-br">
<head>
  <title>Thymeleaf - Estruturas de Condição</title>
</head>
<body>
  <h1 th:each="usuario : ${usuarios}" th:text="${usuario}"></h1>
</body>
</html>

Agora, ao acessar o template home.html no navegador, teremos o seguinte resultado:

Página com o resultado da estrutura de repetição do Thymeleaf

As estruturas de repetição facilitam (e muito) quando precisamos exibir diversos dados e não queremos duplicidade de código, já que uma lista será percorrida e, para cada elemento, será impresso seu valor.

Spring Framework - Fundamentos
Curso de Spring Framework - Fundamentos
CONHEÇA O CURSO

Conclusão

Como vimos neste artigo, o uso de estruturas de condição e repetição no Thymeleaf é bem simples e facilita (e muito) a criação dos templates em uma aplicação Spring Boot. No próximo artigo dessa série, veremos como utilizar o Thymeleaf Fragments, um ótimo recurso para reaproveitamento de código em nossos templates.

Deixe seu comentário

Conheça o autor desse artigo

  • Foto Autor Cleyson Lima
    Cleyson Lima

    Professor, programador, fã de One Piece e finge saber cozinhar. Cleyson é graduando em Licenciatura em Informática pelo IFPI - Campus Teresina Zona Sul, nos anos de 2019 e 2020 esteve envolvido em vários projetos coordenados pela secretaria municipal de educação da cidade de Teresina, onde o foco era introduzir alunos da rede pública no mundo da programação e robótica. Hoje é instrutor dos cursos de Spring na TreinaWeb, mas diz que seu coração sempre pertencerá ao Python.

    Posts desse Autor

Artigos relacionados