Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesCódigo-Fonte 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
Você está aqui: JSF - Java Server Faces ::: JSF HTML Tags :::

Como exibir o número da linha (número de ordem) em uma coluna do controle <h:dataTable>

Quantidade de visualizações: 10542 vezes
Em algumas situações gostaríamos de exibir o número da linha (ou número de ordem) em uma determinada coluna de um controle <h:dataTable>. Numerar as linhas de uma tabela pode ser extremamente útil quando temos mais de 20 linhas. Sem a numeração nos perdemos facilmente nas mesmas.

Isso pode ser feito atribuindo-se ao controle <h:dataTable> uma instância da classe abstrata javax.faces.model.DataModel. Esta classe possui um método getRowIndex() que retorna o índice (començando em 0) do elemento sendo percorrido no momento.

Nesta dica eu mostro como criar uma ArrayList de objetos da classe Livro e fornecer tal lista para o construtor da classe ListDataModel, uma implementação concreta da classe abstrata DataModel.

Vamos começar criando um bean gerenciado JSF para representar um livro. Eis o código:

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;
......


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, um bean gerenciado JSF que contém um membro privado listaLivros do tipo DataModel:

Código para Biblioteca.java:

package arquivo;

import java.io.Serializable;
import java.util.*;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

@ManagedBean
@SessionScoped
public class Biblioteca implements Serializable{
    // vamos declarar um DataModel de livros
    private DataModel<Livro> listaLivros;

    public Biblioteca(){
        // vamos adicionar alguns livros à lista
        ArrayList<Livro> livros = new ArrayList<Livro>();
        
        livros.add(new Livro(234, "Java - Como Programar",
           "Harvey M. Deitel, Paul J. Deitel"));
......


Observe que os dados a serem exibidos no <h:dataTable> são retornados no método getListaLivros() como um objeto da classe DataModel. 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}" 
......


Veja que agora nós temos um elemento <h:column> que exibe o índice do item atual na lista por meio da expressão #{biblioteca.listaLivros.rowIndex + 1}. Execute e verá uma tabela com 4 linhas e 4 colunas. A primeira coluna exibirá os valores de 1 até 4.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de JSF - Java Server Faces

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 31 usuários muito felizes estudando em nosso site.