Paginação com TagLib no Jsp

Essa biblioteca do Taglib é muito útil para paginar uma lista em um Jsp. É utilizado junto com um forEach, por exemplo, do TagLib.

Lembrando que, para que o forEach funcione é necessário que a lista seja declarada em um pageContext, como mostra o exemplo abaixo.

Dependências:

Baixe as bibliotecas abaixo e coloque em seu projeto (WEB-INF/lib).

Biblioteca ‘JSP Standard Tag Library’: http://jstl.java.net/download.html

Biblioteca do ‘Page Taglib’: http://jsptags.com/tags/navigation/pager/download.jsp

Exemplo:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.util.ArrayList" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
 <%
ArrayList teste = new ArrayList();
 teste.add("maça");
 teste.add("pêra");
 teste.add("banana");
 teste.add("uva");
 teste.add("melancia");
 teste.add("mamão");
 teste.add("melão");
 
 pageContext.setAttribute("lista", teste);
 %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Paginação</title>
</head>
<body>

<pg:pager id="p" maxPageItems="2" maxIndexPages="10" export="offset,currentPageNumber=pageNumber" scope="request">
  <pg:param name="keywords"/>

<c:forEach var="item" items="${lista}">
  <pg:item>
	
	- ${item}	<br>
	
	</pg:item>
</c:forEach>

<br><br>

 <pg:index>
    <pg:prev>
      <a href="<%= pageUrl %>">&lt;&lt; Anterior</a>
    </pg:prev>
    <pg:pages>
       <a href="<%= pageUrl %>"><%= pageNumber %></a> 
    </pg:pages>
    <pg:next>
      <a href="<%= pageUrl %>">Próximo &gt;&gt;</a>
    </pg:next>
  </pg:index>
</pg:pager>

</body>
</html>

Paulo Collares

Servo de Jesus Cristo, Analista de Sistemas, com especialidade em Engenharia de Software Saiba mais sobre mim

  • Alvaro

    Obrigado, o código ajudou bastante. Bastante prático com essa biblioteca.

    A princípio não funcionou, pois a minha lista é processada na Servlet e o .jsp apenas exibe a lista de produtos. Por isso, tive que fazer uma concatenação com o pageUrl, algo como <a href="”><< Anterior

    Abraço.

    • Paulo Collares

      valeu pela dica

  • Michel

    Boa tarde!
    Não consegui baixar a Biblioteca do ‘Page Taglib’. Ela é paga? Quando clico no link, vai para uma outra tela com vários outros links.
    Alguém poderia me dar uma dica?

    Obrigado!

    • Paulo Collares

      Ela é gratuíta, o que aconteceu é que o projeto saiu do ar