Este artigo usa dois métodos: (1) para calcular o número total de páginas. (2) Consulte os dados da página especificados para obter um efeito simples de paginação.
Ideia: Primeiro, você deve fornecer um método de consulta de paginação no objeto DAO. Ligue para este método na camada de controle para encontrar os dados da página especificada e exibir os dados da página por meio de expressões EL e JSTL na camada de apresentação.
Deixe -me mostrar as renderizações primeiro:
Off Topic: Esta exibição de página é implementada usando a idéia de design de "camada de camada de apresentação camada-dao-database". Se você tiver alguma melhoria, proponha -o e aprenda e faça progresso juntos. Sem mais delongas, comece a entrar no tópico. As etapas detalhadas são as seguintes:
1.DAO Camada-Database
A classe JDBCutils é usada para abrir e fechar um banco de dados, e o código principal é o seguinte:
importar java.sql.connection; importar java.sql.driverManager; importar java.sql.preparedStatement; importar java.sql.resultset; importar java.sql.sqLexception; classe pública jdbutils {private conexão = nula; /*** Conecte -se conecte -se ao banco de dados* @return*/public Connection Connect () {string user = "root"; string senha = "1234"; string driverclass = "com.mysql.jdbc.driver"; string jdbcurl = "jdbc: mySql: // LocalHost: 3306/{Try; DriverManager.getConnection (jdbcurl, usuário, senha);} Catch (Exceção e) {// TODO GENERATO AUTOMENTADO BLOCKE.PRINTSTACKTRACE ();} Retornar Conn;}/*** Fechar o database* @param Conn* @param pstmt* @param resu*/public voL null) {try {Conn.Close ();} Catch (sqLexception e) {// TODO BLOCO DE CATAGEM AUTO-GENERADO}} if (Pstmt! = NULL) {Try {Pstmt.close Blockey ();} Catch (sqLexception e) {// Todo-Generted Catch.Trocke.Trocke.StInt (sqLexception E) {// Todo-Generted Catch.Trocke.Trocke.StInt (sqLexception E) {// Todo Auto-Gerated Catch.Procke.StInt; {Result.Close ();} Catch (sqLexception e) {// TODO Gatch Blocke.printStackTrace ();}}}}}Os métodos getPage () e o método listuser () na classe Userdao são usados para calcular o número total de páginas e consultar os dados da página especificada, respectivamente. O código principal é o seguinte:
importar java.sql.Connection; importar java.SQL.PreparedStatement; importar java.sql.resultset; importar java.sql.sqLexception; import java.util.ArrayList; import java.util.list; import.db.jdbcutils; @return*/public int getPage () {int RecordCount = 0, t1 = 0, t2 = 0; preparado pstmt = null; resultado resultado = null; jdbcutils jdbc = new jdbcutils (); conexão conn = jdbc.connect (); string sql = selecione (); {Pstmt = Conn.Preparestatement (SQL); resultado = Pstmt.executeQuery (); resultado.Next (); registroCount = resultado.getInt (1); t1 = registro%5; t2 t2 = RecordCount/5;} Catch (Exceção e) {// TOMO-GENATED Catch Finalmente {jdbc.close (conn, pstmt, resultado);} if (t1! = 0) {t2 = t2+1;} retorna t2;}/*** consulte os dados da página especificada* @param pageno* @return*/public list <suser> listUser (int pageno) {preparado pageno* ArrayList <suser> (); int Pagesize = 5; int página = (pageno-1) * 5; jdbcutils jdbc = new jdbcutils (); conexão conn = jdbc.connect (); string sql = "selecione * da ordem dos livros por limite de identificação?,? página); pstmt.setInt (2, Pagesize); resultado = pstmt.executeQuery (); while (result.Next ()) {usuário do usuário = new User (); user.SetId (resultado.getInt (1); user.Sear.SetName (resultado.getString (2)); {// TODO GACK BLOCKE.PRINTSTACKTRACE ();} finalmente {jdbc.close (Conn, Pstmt, resultado);} Lista de retorno;}}A classe de usuário é usada para armazenar os dados consultados, e o código principal é o seguinte:
public class Usuário {private int id; nome da sequência privada; número da sequência privada; public int getId () {return id;} public void setId (int id) {this.id = id;} public string getName () {return name;} public void setName (string name) {this.name = name;} public string getNumber () {SetName número; número;}} 2. Camada de controle
A classe ListUser chama o objeto Userdao para consultar dados e atribui a página para exibir dados. O código principal é o seguinte:
import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.httpServletResponse; importar com.dao.user; importar com.dao.userdao; classe pública listuser estende httpServlet {public listuser () {super ();} public void () {super.Destroy (); // Apenas coloca a string "Destroy" em log // coloca seu código aqui} public void Doget (solicitação httpSerTlequest, httpServletResponse resposta) lança servletexception, ioexception {doPostCost (request, resposta);} public void doPost (HTTPSleTleTeptEct, htpersPrletr, htpers);} public void dopos {Response.SetcharAcTerEncoding ("UTF-8"); int pageno = 1; userdao userdao = new userdao (); list <suser> lists = new ArrayList <Vester> (); string pageno = request.getParameter ("pagenos"); se (pageno! = = null) {pageno = Integer.parseInt (pageno);} lists = userdao.listuser (pageno); int registrCount = userdao.getpage (); request.setAttribute ("listcount", userdao.getPage ()); pageno); request.getRequestDispatcher ("userList.jsp"). Forward (solicitação, resposta);} public void init () lança servletexception {// Coloque seu código aqui}} 3. Camada de expressão
A página de saída UserList.jsp é usada para produzir resultados de consulta usando EL e JSTL. O código principal é o seguinte:
<%@ Page Language = "java" import = "java.util. prefix = "fmt"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn"%> <%string path = request.getContextPath (); string basepath = request.getscheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/";%> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en en non 'userlist.jsp' página de partida </title> <meta http-equiv = "Pragma" content = "no-cache"> <meta http-equiv = "cache-CONTROL" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-http-http-equiv = "expires" = "0"> <meta http-http- Content = "Palavra-chave1, palavra-chave2, palavra-chave3"> <meta http-equiv = "description" content = "esta é a minha página"> <!-<link rel = "Stylesheet" type = "text/css" href = "styles.css">-> <estilo "" text/css "> th, td {wlhth: Center;} Body {Text-align: Center;} A {Text-Decoração: None;} Tabela {Border-Collapse: COLLAPSE;} </style> </head> <body> <h2 align = "Center"> Informações do livro </h2> <tabela align = "Center"> <tr> <td> Número do livro </td> <t. título </td> <td> inventário </td> </tr> </tabela> <tabela align = "Center"> <c: foreach itens = "$ {listss}" var = "pessoa"> <tr> <td> $ {Person.id} </td> <td> $ {pessoa.name} </td> } </td> </tr> </c: foreach> </itlast> <br> <c: se test = "$ {pagenos> 1}"> <a href = "listuser? pagenos = 1"> home </a> <a href = "listUser? <registrocount} "> <a href =" listuser? pagenos = $ {pagenos+1} "> próxima página </a> </c: if> <form action =" listuser "> <h4 align =" central "> total $ {RecordCount} página <input =" text "") type = "submeter" value = "chegada"> </h4> </morm> </body> </html>O exposto acima é o código de exemplo de exibição de paginação simples da Web Java, apresentada a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!