Paginação ArrayList + table

2 respostas
N

Pessoal, bom dia!

Estou pesquisando a uns dois dias sobre paginação, mas até agora não encontrei nenhuma solução sobre o meu caso.

Acontece o seguinte tenho um arraylist que vem do servlet para a minha página, consigo exibir todas as informações, mas a questão é, como fazer a paginação com essa lista.

segue o código:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link href="css/estilos.css" rel="stylesheet" type="text/css">
        <title>Busca por endereço</title>
    </head>
    <body>
        <table>
            <tr bgcolor="#333333" class="contratos_titulo_tabela">
                <td>CPF/CNPJ</td>
                <td>Nome</td>
                <td>Abr.</td>
                <td>Logradouro</td>
                <td>N&deg;</td>
                <td>Compl.</td>
                <td>Bairro</td>
                <td>Cidade</td>
                <td>UF</td>
            </tr>
            <c:forEach var="endereco" items="${listaEnderecos}">
                <tr>
                    <td>${endereco.cpf_cnpj}</td>
                    <td>${endereco.nome}</td>
                    <td>${endereco.tipo_endereco}</td>
                    <td>${endereco.logradouro}</td>
                    <td>${endereco.numero}</td>
                    <td>${endereco.complemento}</td>
                    <td>${endereco.bairro}</td>
                    <td>${endereco.cidade}</td>
                    <td>${endereco.estado}</td>
                </tr>
            </c:forEach>
        </table>
    </body> 
</html>

agradeço pela atenção e posteriores respostas

2 Respostas

jokacwb

O c: forEach tem os atributos begin e end , de uma lida na documentação, com
eles você pode facilmente criar paginação.
Você precisará ter no seu bean um início, fim e tamanho da lista para popular os atributos.

Aqui tem um exemplo: http://blog.opencampaign.co.uk/index.php/2010/07/pagination-using-only-jstl.html

N

Consegui resolver parcialmente, só que no exemplo o cidadão passa por session, no entanto testei com a sessao aqui e não deu nada certo

servlet:

public class buscaServlet extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, FileNotFoundException, SQLException {
        HttpSession session = request.getSession(true);
        response.setContentType("text/html;charset=UTF-8");
        String endereco = request.getParameter("endereco");
        String estado =  request.getParameter("estado");
        String tipo = request.getParameter("tipo");
        PrintWriter out = response.getWriter();
        GerenciaPesquisa ger = new GerenciaPesquisa();
        ger.processaPesquisa(endereco, estado, tipo);
        try {
            List<Endereco> end = ger.getEndereco();
            RequestDispatcher rd = request.getRequestDispatcher("/lista_enderecos.jsp");
            session.setAttribute("sListaEnderecos", end);
            request.setAttribute("listaEnderecos", end);
            rd.forward(request, response);

        } finally { 
            out.close();
        }
    }

jsp

<body>
        <c:set value="10" var="pageSize"/>
        <c:choose>
            <c:when test="${empty param.s}">
                <c:set var="rowStart" value="1"/>
            </c:when>
            <c:otherwise>
                <c:set var="rowStart" value="${param.s}"/>
            </c:otherwise>
        </c:choose>
        <c:choose>
            <c:when test="${empty param.e}">
                <c:set var="rowEnd" value="${pageSize}"/>
            </c:when>
            <c:otherwise>
                <c:set var="rowEnd" value="${param.e}"/>
            </c:otherwise>
        </c:choose>
        <table>
            <tr bgcolor="#333333" class="contratos_titulo_tabela">
                <td>CPF/CNPJ</td>
                <td>Nome</td>
                <td>Abr.</td>
                <td>Logradouro</td>
                <td>N&deg;</td>
                <td>Compl.</td>
                <td>Bairro</td>
                <td>Cidade</td>
                <td>UF</td>
            </tr>
            <c:forEach var="endereco" begin="${rowStart-1}" step="1" end="${rowEnd-1}" items="${sessionScope.sListaEnderecos}" >

A questão que eu testei, no glassfish funciona certinhom no entanto no tomcat ele da a sessao como nula. o time out da session do tomcat está em 30 min.

Agradeço a paciência de todos e espero uma resposta.

Att

Criado 10 de junho de 2011
Ultima resposta 10 de jun. de 2011
Respostas 2
Participantes 2