Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Facelets ::: Facelets UI Tag Library (Bibliotecas de Tags UI do Facelets) :::

Aprenda a usar a tag <ui:repeat> do Facelets em suas aplicações JSF

Quantidade de visualizações: 11032 vezes
A tag UI Repeat do Facelets é usada quando queremos percorrer todos os objetos de uma coleção e manipulá-los ou exibí-los um de cada vez. Em geral usamos esta tag em substituição ao controle <h:dataTable> do JavaServer Faces ou a tag <c:forEach> da JSTL (JSP Standard Tag Library).

A coleção de itens a serem fornecidos para exibição ou manipulação na tag <ui:repeat> pode ser dos seguintes tipos:

a) Um objeto Java;
b) Um array (matriz);
c) Uma instância de java.util.List;
d) Uma instância de java.sql.ResultSet;

Se a coleção de dados for null a tag não produzirá nenhum resultado.

Vamos então ver um exemplo bem simples do uso deste controle. Comece criando um novo bean gerenciado JSF chamado Livro. Modifique-o para o código abaixo:

Código para Livro.java:

package arquivo;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class Livro implements Serializable{
    private int codigo;
    private String titulo;
    private String autor;

    // não esqueça o construtor vazio
    public Livro(){}

    public Livro(int codigo, String titulo, String autor){
        this.codigo = codigo;
        this.titulo = titulo;
        this.autor = autor;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }
}

Note que este bean possui os atributos codigo (int), titulo (String) e autor (String). Vamos criar agora um outro bean gerenciado JSP que nos permitirá retornar uma ArrayList de objetos da classe Livro. Veja o código para o bean Biblioteca:

Código para Biblioteca.java:

package arquivo;

import java.io.Serializable;
import java.util.*;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class Biblioteca implements Serializable {
    // vamos declarar uma ArrayList de livros
    private ArrayList<Livro> listaLivros;

    // construtor vazio
    public Biblioteca() {
    }

    // método que permite obter a lista de livros
    public ArrayList<Livro> getListaLivros() {
        // vamos criar uma nova instância de ArrayList
        listaLivros = new ArrayList<Livro>();

        // vamos adicionar alguns livros à lista
        listaLivros.add(new Livro(234, "Java - Como Programar",
                "Harvey M. Deitel, Paul J. Deitel"));
        listaLivros.add(new Livro(823, "Java 2 - Interfaces Gráficas",
                "Osmar J. Silva"));
        listaLivros.add(new Livro(698, "Core Java 2: Fundamentos - Volume 1",
                "Cay S. Horstmann"));
        listaLivros.add(new Livro(98, "JavaScript Avançado",
                "Osmar J. Silva"));

        return listaLivros;
    }
}

Veja que a classe Biblioteca possui um método com a seguinte assinatura:

public ArrayList<Livro> getListaLivros();

É este método que passaremos para a tag <ui:repeat> e deixaremos que ela se encarregue de listar todos os livros em um tabela HTML. Veja a página Facelets na qual temos a tag <ui:repeat>:

Código para index.xhtml:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <title>Estudos JavaServer Faces</title>
    </h:head>
    <h:body>
       <h:form>

           <table border="1" width="400px" cellpadding="3">

           <ui:repeat value="#{biblioteca.listaLivros}" var="livro">

               <tr>
                   <td>#{livro.codigo}</td>
                   <td>#{livro.titulo}</td>
                   <td>#{livro.autor}</td>
               </tr>

           </ui:repeat>

           </table>

       </h:form>
    </h:body>
</html>

Note que, diferente do controle <h:dataTable> do JavaServer Faces, quando estamos usando a tag <ui:repeat> nós temos que, por conta própria, declarar os demais elementos HTML. Isso nos dá a vantagem adicional de refinar ao máximo a formatação e controle sobre os elementos da página.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de Facelets

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 39 usuários muito felizes estudando em nosso site.