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
<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><%@pagesession="false"%><%@tagliburi="http://jsptags.com/tags/navigation/pager"prefix="pg"%><%@tagliburi="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><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>JSP Page</title></head><body><h1>JSP Page</h1><tableborder="0"width="90%"cellpadding="4"><trvalign="top"><pg:pageritems="${tamanho}"index="center"maxPageItems="2"maxIndexPages="20"export="offset,currentPageNumber=pageNumber"scope="request"><%--savepageroffsetduringformchanges--%><inputtype="hidden"name="pager.offset"value="<%=offset%>"><br><center><pg:index><jsp:includepage="/WEB-INF/jsp/altavista.jsp"flush="true"/></pg:index></center><hr><tablewidth="90%"cellspacing="4"cellpadding="4"><%--for(inti=offset.intValue(),k=Math.min(i+10,l.size());i<k;i++){%><pg:item><tr><th><%=l.get(i)%></th></tr></pg:item><%}--%><c:forEachvar="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 */importjava.io.*;importjava.net.*;importjava.util.ArrayList;importjavax.servlet.*;importjavax.servlet.http.*;/** * * @author Rafael * @version */publicclassListarServletextendsHttpServlet{/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response */protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=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 */protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//processRequest(request, response);ArrayListusuarios=newArrayList();for(inti=0;i<10;i++){UsuarioBeanu=newUsuarioBean();u.setNome("Rafael");u.setIdade(1+i);usuarios.add(u);}Integert=newInteger(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 */protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//processRequest(request, response);}/** Returns a short description of the servlet. */publicStringgetServletInfo(){return"Short description";}// </editor-fold>}