Artigo Java Magazine 13 - Paginação na web

Artigo publicado pela Java Magazine 13.

Esse artigo faz parte da revista Java Magazine edição 13. Clique aqui para ler todos os artigos desta edição.

Clique aqui para ler esse artigo em PDF.

Paginação na web

 

 É comum em aplicações web a ne­cessidade de apresentar algum tipo de listagem para o usuário, e quando a quantidade de itens é grande, torna-se importante exibir os dados de forma paginada, reduzindo os tempos de resposta e mantendo a escalabilidade da aplicação. A paginação de dados resolve vários problemas. Normalmente apenas alguns dados de uma consulta são real­mente utilizados; a exibição de listagens extensas pode consumir muitos recursos do servidor de banco de dados, e aumentar desnecessariamente o tráfego da rede e o consumo de memória (causando a instan­ciação de um grande número de objetos que não serão usados).

 

Muitas vezes são criadas soluções pró­prias para a paginação. Acaba-se “rein­ventando a roda” quando há ferramentas prontas que podem ajudar muito, ou até mesmo solucionar inteiramente o proble­ma. Dentre as várias alternativas, esco­lhemos duas bibliotecas de tags (taglibs) com enfoques diferentes, mas capacidades semelhantes de paginação: a Pager Tag Li­brary e a Display Tag Library. A primeira é voltada totalmente para a paginação; a segunda é mais forte na apresentação dos dados. Vamos mostrar exemplos de ambas, buscando um resul­tado semelhante ao da Figura 1 – uma listagem paginada com índice para navegação, num es­tilo bastante popular na web. Nos arquivos disponíveis para download, incluímos exemplos que usam recursos exclusivos de cada taglib.

 

Usamos também tags da JSTL, a biblioteca padrão de JSP (veja detalhes sobre o assunto na série de artigos “JSTL – Guia Completo”, nas Edições 7, 8 e 9). Para executar as aplica­ções, utilizamos o Tomcat e uma base de dados MySQL, que pode ser criada com o script da Listagem 1. Veja os detalhes básicos da configuração desse ambiente nos quadros “Primeiros passos” e “Ins­talação das taglibs”.

 

No quadro “Versão alternativa com HSQLDB”, mostramos como configurar o ambiente para utilizar esse banco de da­dos embutido, em vez do MySQL, criando uma solução “autocontida” (veja detalhes sobre o HSQLDB na Edição 7). Final­mente, no quadro “Paginação na web ou no banco de dados” são analizados os limites e aplicabilidade das bibliotecas de tags apresentadas.

Pager

A taglib Pager oferece tudo o que é re­almente necessário para a paginação de dados, embora apresente poucos recursos de customização. Ela é distribuída em um pacote WAR, é software livre (LGPL) e vem com vários exemplos que simulam a aparência de buscadores populares, como Google, Yahoo e Altavista.

 

A Listagem 2 mostra um exemplo utili­zando a taglib Pager e as tags sql da JSTL, usadas para o acesso ao banco de dados (note que referenciamos uma folha de esti­los CSS, para padronizar a formatação).

Veja a estrutura simplificada usada para as tags da biblioteca Pager :

 

<pg:pager ... >

  <pg:param ... />

  <!-- Itens para paginação: uma tag por item -->

  <pg:item> ... </pg:item>

  <!-- Indice do paginador -->

  <pg:index>

<! -- Elementos de paginação -->

<pg:first> ... </pg:first>

<pg:prev>  ... </pg:prev>

<pg:page>  ... </pg:page>

<pg:pages> ... </pg:pages>

<pg:next>  ... </pg:next>

" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados