![]() |
|
||||
![]() 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. |
![]() |
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 |