JAVA - Ajuda em Paginação
Caros amigos, saudações.
Estou escrevendo um Sistema em JAVA Web e estou encontrando um problema para fazer Paginação.
O sistema informa o Limite de registro por página, mas não mostra abaixo da tabela a paginação.
Alguém pode me ajudar ?
Posto o Código abaixo.
Controller - Servlet
package br.com.rc.controlador;
import br.com.rc.modelo.Cargo;
import br.com.rc.modelo.dao.CargoDAO;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet
*/
public class srvCargos extends HttpServlet {
private CargoDAO crgDao = new CargoDAO();
private final String pagListar = "/views/cargos/cargos.jsp";
private final String pagNovo = "/views/cargos/cargoNovo.jsp";
private final String pagEditar = "/views/cargos/cargoEditar.jsp";
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String accion = request.getParameter("accion");
switch (accion) {
case "listarCargos":
listarCargos(request, response);
break;
default:
throw new AssertionError();
}
}
protected void listarCargos(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
int paginaActual = 1;
int registrosPorPagina = 5; // Qtde por Tabela
if (request.getParameter(pagListar) != null) {
paginaActual = Integer.parseInt(request.getParameter(pagListar));
}
int offset = (paginaActual - 1) * registrosPorPagina;
List<Cargo> lista = crgDao.ListarTodos(offset, registrosPorPagina);
int totalRegistros = crgDao.contarTotal();
int totalPaginas = (int) Math.ceil((double) totalRegistros / registrosPorPagina);
request.setAttribute("cargos", lista);
request.setAttribute("totalPaginas", totalPaginas);
request.setAttribute("paginaAtual", paginaActual);
request.getRequestDispatcher(pagListar).forward(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Classe DAO
package br.com.rc.modelo.dao;
import br.com.rc.config.Conexion;
import br.com.rc.modelo.Cargo;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* Classe DAO
*/
public class CargoDAO {
private Connection cn = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
private int noOfRecords;
public ArrayList<Cargo> ListarTodos(int offset, int noOfRecords) {
ArrayList<Cargo> lista = new ArrayList<>();
try {
cn = Conexion.getConnection();
String sql = "select * from Cargo ORDER BY nombreCargo ASC limit " + offset + ", " + noOfRecords;
ps = cn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Cargo obj = new Cargo();
obj.setIdCargo(rs.getInt("idCargo"));
obj.setNombreCargo(rs.getString("nombreCargo"));
obj.setEstado(rs.getBoolean("estado"));
lista.add(obj);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (cn != null) {
cn.close();
}
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
} catch (Exception ex) {
}
}
return lista;
}
public int contarTotal() {
String sql = "Select Count(*) From Cargo";
try (PreparedStatement ps = cn.prepareStatement(sql)) {
ResultSet rs = ps.executeQuery();
if (rs.next()) return rs.getInt(1);
} catch (SQLException e) { e.printStackTrace(); }
return 0;
}
public int getNoOfRecords() {
return noOfRecords;
}
}
Página JSP
caminho: \web\views\cargos\cargos.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:include page="../../estilo/header.jsp" />
<jsp:include page="../../estilo/menu.jsp" />
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<section class="content-header">
<h1>Página Cargos</h1>
</section>
<!-- Content Header (Page header) -->
<section class="content-header">
<a href="srvCargos?accion=novo" class="btn btn-success">
<i class="fa fa-plus"></i> Novo Cargo </a>
<ol class="breadcrumb">
<li><a href="srvCargos?accion=index"><i class="fa fa-dashboard"></i> Inicio</a></li>
<li class="active">Cargos</li>
</ol>
</section>
<section class="content">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">Lista de Cargos</h3>
</div>
<div class="box-body">
<div class="table-responsive" >
<table class="table table-bordered table-striped dataTable table-hover" id="tablaCargos">
<thead>
<tr>
<th>Código</th>
<th>Descrição</th>
<th>Estado</th>
<th>Ação</th>
</tr>
</thead>
<tbody>
<c:forEach items="${cargos}" var="item">
<tr>
<td>${item.idCargo}</td>
<td>${item.nombreCargo}</td>
<c:if test="${item.estado == true}">
<td><span class="badge bg-green active">Ativo</span></td>
</c:if>
<c:if test="${item.estado == false}">
<td><span class="badge bg-red active">Inativo</span></td>
</c:if>
<td>
<a href="srvCargos?accion=buscar&id=${item.idCargo}"
class="btn btn-info btn-sm">
<i class="fa fa-edit"></i>
</a>
<a href="srvCargos?accion=eliminar&id=${item.idCargo}"
onclick="return confirm('Deseja Realmente Excluir o Cargo com id ${item.idCargo}')"
class="btn btn-danger btn-sm">
<i class="fa fa-trash"></i>
</a>
</td>
</tr>
</c:forEach>
<c:if test="${cargos.size() == 0}">
<tr class="text-center">
<td colspan="6">Nenhum Registro Enconrado.</td>
</tr>
</c:if>
</tbody>
</table>
<!--Aqui está o erro ===> a parte de Navegação não mostra-->
<nav>
<ul class="pagination">
<c:if test="${paginaActual > 1}">
<li class="page-item"><a class="page-link" href="srvCargos?accion=listarCargos?page=${paginaActual - 1}">Anterior</a></li>
</c:if>
<c:forEach var="i" begin="1" end="${totalPaginas}">
<li class="page-item ${i == paginaActual ? 'active' : ''}">
<a class="page-link" href="srvCargos?accion=listarCargos?page=${i}">${i}</a>
</li>
</c:forEach>
<c:if test="${paginaActual < totalPaginas}">
<li class="page-item"><a class="page-link" href="srvCargos?accion=listarCargos?page=${paginaActual + 1}">Siguiente</a></li>
</c:if>
</ul>
</nav>
</div>
</div>
</div>
</section>
<!-- /.content -->
</div><!-- /.content-wrapper -->
<jsp:include page="../../estilo/footer.jsp" />
Grato,
Cesar
Discussão (1)
Carregando comentários...