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 JSFQuantidade 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. |
![]() |
Veja mais Dicas e truques de Facelets |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |