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: 10265 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. |
Link para compartilhar na Internet ou com seus amigos: |
Vamos testar seus conhecimentos em Hidrologia |
(Enem 2016) A renaturalização de rios e córregos é, há muito tempo, uma realidade na Europa, no Japão, na Coreia do Sul, nos Estados Unidos e em outros países. No Brasil ainda são muito tímidas as iniciativas, mas algumas poucas cidades estão adotando essa importante prática. Disponível em: http://sosriosdobrasil.blogspot.com.br. Acesso em: 10 dez. 2012 (adaptado). A legislação brasileira avançou ao estabelecer como unidade territorial para a gestão desse recurso A) os biomas. B) as reservas ecológicas. C) as unidades do relevo. D) as bacias hidrográficas. E) as áreas de preservação ambiental. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares de canto Os pilares de canto são solicitados pela flexão oblíqua, tendo momentos de 1ª ordem e excentricidades nas direções x e y. Analise os dados para o pilar a seguir: Qual o valor das excentricidades no topo e na base do referido pilar, em x e y? A) e1,x,A = 1,02cm. e1,x,B = 1,31cm. e1,y,A = 2,05cm. e1,y,B = 1,75cm. B) e1,x,A = 1,52cm. e1,x,B = 1,31cm. e1,y,A = 2,22cm. e1,y,B = 1,99cm. C) e1,x,A = 2,10cm. e1,x,B = 1,56cm. e1,y,A = 1,50cm. e1,y,B = 1,99cm. D) e1,x,A = 2,78cm. e1,x,B = 1,32cm. e1,y,A = 1,50cm. e1,y,B = 1,99cm. E) e1,x,A = 1,78cm. e1,x,B = 1,32cm. e1,y,A = 1,22cm. e1,y,B = 0,99cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Analise o seguinte código Pythona = {5, 8, 2, 1} b = {1, 4, 5, 3} c = a & b print(c) Qual é o resultado de sua execução? A) {5, 5, 1, 1} B) Um erro de execução na linha 2 C) {1, 5} D) {5, 8, 2, 1, 1, 4, 5, 3} Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em AutoCAD Civil 3D |
A paleta Toolspace Qual aba da paleta Toolspace é usada para exibir os objetos do Civil 3D em uma lista resumida e expansível? A) Settings B) Prospector C) Toolbox D) Survey Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Um arquivo JavaScript externo precisa, obrigatoriamente, conter a tag <script> A) Verdadeiro B) Falso Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de JSF - Java Server Faces |
Dicas e truques de outras linguagens |
Python - Como criar um relógio analógico no Pygame - Código completo com variáveis e comentários em português |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |