Até então passamos um único objeto para a visão, mas e se quisermos passar uma coleção de objetos? Por exemplo uma lista de produtos em vez de apenas um produto.
Para isso vamos precisar fazer algumas alterações em nosso controlador:
Se preferir você pode utilizar a classe Arrays para inicializar a lista com os valores iniciais:
Agora precisamos alterar a visão, visto que deixamos de receber um único objeto e passamos a receber uma coleção de objetos. Para esse cenário o Thymeleaf provê um novo atributo chamado th:each
que nos permite iterar sobre uma coleção de objetos com a seguinte sintaxe:
Onde element
é o nome que você deseja dar para cada elemento da coleção e collection
é a coleção que você deseja iterar.
Vamos alterar a visão list
para que de fato agora ela exiba uma lista de produtos e não mais apenas um elemento.
Com esse atributo podemos percorrer a coleção de produtos e exibir cada um deles em uma linha da tabela.
Rode o código no navegador, veja o código fonte gerado e perceba que apesar de termos escrito apenas uma linha da tabela (tr
) em nosso código, o Thymeleaf gerou 3 linhas da tabela, uma para cada produto da coleção.