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: 10493 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
java.lang.Object
javax.faces.component.UIComponent
javax.faces.component.UIComponentBase
javax.faces.component.UIData
javax.faces.component.html.HtmlDataTable
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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;
}
}
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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",
"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"));
}
// método que permite obter a lista de livros
public List<Livro> getListaLivros(){
return listaLivros;
}
}
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<?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}"
var="livro">
<h:column>#{livro.codigo}</h:column>
<h:column>#{livro.titulo}</h:column>
<h:column>#{livro.autor}</h:column>
</h:dataTable>
</h:form>
</h:body>
</html>
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 |






