Oi, estou enfrentando problemas para paginar tópicos vindos do banco.
Eu não vou usar taglib pois o conteúdo do meu projeto é intenso e o deixará lento.
<%@page language="java" import="database.Conexao"%>
<%@page import="java.sql.*"%>
<%@page contentType="text/html" pageEncoding="iso-8859-1"%>
<%
String parametro = request.getParameter("pr");
if (parametro == null) {
response.sendRedirect("paginacao.mc?pr=0");
} else {
int limitePorPagina = 5;
String pr1 = request.getParameter( "pr" );
try{
//Class.forName( "com.mysql.jdbc.Driver" ).newInstance();
Connection conn = Conexao.getConexao();
PreparedStatement pstmt = null;
ResultSet rs = null;
pstmt = conn.prepareStatement( "SELECT *, count(*) as c FROM noticias LIMIT " +
pr1 + "," + String.valueOf( limitePorPagina ));
rs = pstmt.executeQuery();
rs.next();
int totalregs = Integer.parseInt( rs.getString( "c" ) );
int totalpgs = Math.round( totalregs / limitePorPagina );
if( ( totalregs % limitePorPagina ) > 0 ) totalpgs++;
int pr = Integer.parseInt( request.getParameter( "pr" ) );
%>
<% while( rs.next() ) {
String id = rs.getString( "id" );
String nm = rs.getString( "title" );
String mail = rs.getString( "noticia" );
%>
<%=id%> | <%=nm%>| <%=mail%>
<br> <% } %>
<% if( pr > 0 ){ %>
[<a href="?pr=0">Primeira Página</a>]
[<a href="?pr=<%=pr-limitePorPagina%>">Anteriores</a>]
<% } %>
<% if( pr < ( totalpgs * limitePorPagina ) - limitePorPagina ) {
%> [<a href="?pr=<%=pr+limitePorPagina%>">Próximo</a>]
[<a href="?pr=<%=( totalpgs * limitePorPagina ) - limitePorPagina%>">
Ultima</a>]
<% }
} catch (SQLException sqlex) {
out.println(sqlex);
}
}
%>
Bom, meu código é esse, e a excessão é essa: java.sql.SQLException: Illegal operation on empty result set. .
Deve ser pelo uso do while logo após o rs.next() mas tentei e não consegui resolver.
Peço ajuda de vocês.
E quando eu aprender, pretendo fazer isso com Stripes ou JSF.
att.