JSTL e Tag de paginação

2 respostas
rafael.espiritosanto

Minha dúvida é se é possível integrar a tag <c:forEach> com a tag de paginção do pager-taglib.

Ao utilizar as duas ele me mostra na primeira página os valores corretos.
Mas ao escolher algum índice de paginação a jstl se perde e nada é mostrado.

Eu fazendo o seguinte: em um servlet eu crio um ArrayList que irá possuir o conteúdo a ser exibido. Coloco a ArrayList e seu tamanho como atributos e mando pra jsp.

Na jsp eu uso a pager-taglib e dentro do <c:forEach> eu uso a pg:item

Valeu!

2 Respostas

rafael.espiritosanto

Segue o código que estou utilizando

Código da JSP

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page session="false" %>
<%@taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

<!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>JSP Page</title>
    </head>
    <body>

    <h1>JSP Page</h1>
    <table border="0" width="90%" cellpadding="4">
        <tr valign="top">
        <pg:pager 
        items="${tamanho}" 
        index="center"
        maxPageItems="2"
        maxIndexPages="20"
        
        export="offset,currentPageNumber=pageNumber"
        scope="request">

        <%-- save pager offset during form changes --%>
        <input type="hidden" name="pager.offset" value="<%= offset %>">

 
        <br>
        <center>
            <pg:index>
                <jsp:include page="/WEB-INF/jsp/altavista.jsp" flush="true"/>
            </pg:index>
        </center>

        <hr>
        <table width="90%" cellspacing="4" cellpadding="4">
        <%--
            for (int i = offset.intValue(), k = Math.min(i + 10, l.size()); i < k; i++) { %>
		<pg:item><tr><th><%=l.get(i)%></th></tr></pg:item><%	
            } 
		
        --%>
        <c:forEach var="usuario" items="${usuarios}">
            <pg:item>
                <tr>
                    <th>${usuario.nome}</th>
                    <th>${usuario.idade}</th>
                </tr>
            </pg:item>
        </c:forEach>
    </table>
    <hr>
    </pg:pager>
    </center>
    </body>
    </html>

Código do Servlet

/*
 * ListarServlet.java
 *
 * Created on 26 de Julho de 2006, 21:31
 */

import java.io.*;
import java.net.*;
import java.util.ArrayList;

import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 * @author Rafael
 * @version
 */
public class ListarServlet extends HttpServlet {
    
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        /* TODO output your page here
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet ListarServlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Servlet ListarServlet at " + request.getContextPath () + "</h1>");
        out.println("</body>");
        out.println("</html>");
         */
        out.close();
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        //processRequest(request, response);
        ArrayList usuarios = new ArrayList();
        for (int i = 0; i < 10; i++) {
            UsuarioBean u = new UsuarioBean();
            u.setNome("Rafael");
            u.setIdade(1 + i);
            
            usuarios.add(u);
        }
        Integer t = new Integer(usuarios.size());
        request.setAttribute("tamanho", t);
        request.setAttribute("usuarios", usuarios);
        request.getRequestDispatcher("./pag.jsp").forward(request, response);
        
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        //processRequest(request, response);
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
M

Boa noite,

Quais são as libs necessárias para a paginação?

Obrigado

Criado 27 de julho de 2006
Ultima resposta 3 de nov. de 2010
Respostas 2
Participantes 2