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: 11330 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 |




