Você está aqui:
JSF - Java Server Faces :::
JSF HTML Tags ::: |
Entenda e aprenda a usar o controle <h:dataTable> em suas aplicações JSFQuantidade de visualizações: 10335 vezes |
O controle <h:dataTable>, um objeto da classe HtmlDataTable, representa um elemento HTML table compatível com o HTML 4.01. O controle <h:dataTable> pode ser associado a um bean de suporte para obter as informações a serem exibidas na tabela, assim como para propósito de gerenciamento de eventos. Veja a posição da classe HtmlDataTable na hierarquia de classes do Java EE: java.lang.Object javax.faces.component.UIComponent javax.faces.component.UIComponentBase javax.faces.component.UIData Veja que esta classe implementa as interfaces NamingContainer e StateHolder. O elemento HTML table gerado pelo controle <h:dataTable> pode ser customizado usando classes e definições de folhas de estilo em cascata CSS (cascading stylesheet) para melhorar a aparência do cabeçalho, rodapé, colunas e linhas das tabelas. As técnicas de formatação mais comuns, tais como alternar as cores das linhas, podem ser conseguidas com muita facilidade. O conteúdo de um controle <h:dataTable> pode vir de uma das seguintes fontes: a) Um objeto Java; b) Um array; c) Uma instância de java.util.List; d) Uma instância de java.sql.ResultSet; e) Uma instância de javax.servlet.jsp.jstl.sql.Result; f) Uma instância de javax.faces.model.DataModel. À medida que o controle <h:dataTable> percorre a fonte de dados, ele disponibiliza cada item do array, lista, result set, etc, dentro do corpo da tag. A coleção dos dados a serem exibidos é informada na propriedade value, enquanto o nome de cada item é especificado usando-se o atributo var do controle. Mas, vamos ver um exemplo do uso deste controle? Se ainda não o fez, crie uma nova aplicação web JSF . Em seguida crie o seguinte bean gerenciado JSF: 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; } Aqui nós temos uma classe Livro contendo os atributos codigo, titulo e autor. Note que esta classe foi marcada com as anotações @ManagedBean e @SessionScoped. Isso a torna um bean gerenciado JSF e com escopo de sessão. Agora vamos criar um outro bean que nos permite criar uma lista de livros. Veja o código para Biblioteca.java: 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 lista de livros private ArrayList<Livro> listaLivros; public Biblioteca(){ // vamos adicionar alguns livros à lista listaLivros = new ArrayList<Livro>(); listaLivros.add(new Livro(234, "Java - Como Programar", "Harvey M. Deitel, Paul J. Deitel")); listaLivros.add(new Livro(823, "Java 2 - Interfaces Gráficas", Observe que nesta classe Biblioteca nós criamos uma ArrayList de objetos da classe Livro e a retornamos no método getListaLivros(). Observe agora a página JSP ou Facelets que contém o controle <h:dataTable>: 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"> <h:head> <title>Estudos JavaServer Faces</title> </h:head> <h:body> <h:form> <h:dataTable border="1" value="#{biblioteca.listaLivros}" Aqui nós fornecemos o valor "#{biblioteca.listaLivros}" para a propriedade value da <h:dataTable>. Isso já basta para que o controle tenha acesso à lista de livros. Em seguida definimos o valor "livro" para a propriedade var. Agora cada livro pode ser acessado individualmente na lista usando-se a variável "livro". Acredito que esta dica tenha sido uma boa introdução ao uso do controle <h:dataTable> em suas aplicações JSF. É claro que você deverá acessar outras dicas e truques desta seção para aprender mais sobre outras possibilidades do uso deste controle. |
![]() |
Veja mais Dicas e truques de JSF - Java Server Faces |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |