Cet article utilise deux méthodes: (1) pour calculer le nombre total de pages. (2) interroger les données de la page spécifiées pour obtenir un effet de pagination simple.
Idée: Tout d'abord, vous devez fournir une méthode de requête de pagination dans l'objet Dao. Appelez cette méthode sur la couche de contrôle pour trouver les données de la page spécifiée et afficher les données de la page via EL Expressions et JSTL au niveau de la couche de présentation.
Permettez-moi de vous montrer les rendus en premier:
Off Thème: Cet affichage de la page est implémenté en utilisant l'idée de conception de "Présentation Layer-Control Layer-Dao Layer-Database". Si vous avez des améliorations, veuillez le proposer et apprendre et progresser ensemble. Sans plus tarder, commencez à saisir le sujet. Les étapes détaillées sont les suivantes:
1.DAO LACER-Database
La classe JDBcutils est utilisée pour ouvrir et fermer une base de données, et le code central est le suivant:
import java.sql.connection; import java.sql.driverManager; import java.sql.preparedstatement; import java.sql.resultSet; import java.sql.sqlexception; classe publique jdbcutils {connexion privée conn = null; privé préparé pstmt = null; / *** connect connect to the database * @ return * / public connection connect () {String user = "root"; string password = "1234"; string driverclass = "com.mysql.jdbc.driver"; string jdbcurl = "jdbc: mysql: // localhost: 3306 / book"; try {class.forname (driverclass); Conn = Drivermanager.getConnection (jdbcurl, utilisateur, mot de passe);} catch (exception e) {// TODO GÉNÉRATEUR AUTO-GÉNÉRÉ BLOCKE.PRINTSTACKTRACE ();} RETOUR Conn;} / *** Closez la base de données * @param Conn * @param pstmt * @param resu * Résultat) {if (conn! = null) {try {conn.close ();} catch (sqlexception e) {// TODO Generated Catch Block}} if (pstmt! = null) {try {pstmt.close ();} catch (sqlexception e) {// TODO a été généré auto-généré par auto-généré par auto Blocke.printStackTrace ();}} if (result! = null) {try {result.close ();} catch (sqlexception e) {// todo généré par auto-généré Blocke.printStackTrace ();}}}}Les méthodes getPage () et Method listUser () dans la classe UserDAO sont utilisées pour calculer le nombre total de pages et interroger respectivement les données de la page spécifiées. Le code central est le suivant:
Importer java.sql.connection; import java.sql.preparedstatement; import java.sql.resultSet; import java.sql.sqlexception; import java.util.arraylist; int getPage () {int enregistreCount = 0, t1 = 0, t2 = 0; préparéStatement pstmt = null; resultSet result = null; jdbcutils jdbc = new Jdbcutils (); connection conn = jdbc.connect (); string sql = "select compter (*) from books"; try {pstmt = conn.preparestatement (sql); result = pstmt.executequery (); result.next (); recordCount = result.getInt (1); t1 = recordCount% 5; t2 = recordCount / 5;} catch (exception e) {// toDo Generated Catch Blocke.PrintStackTrace ();}; Enfin {jdbc.close (Conn, pstmt, résultat);} if (t1! = 0) {t2 = t2 + 1;} return t2;} / *** interroge les données de la page spécifiée * @param pageno * @ return * / public list <user> listSer (int pageno) {Prevestatement Pstmt = null; resultSit / null = list <user = New ArrayList <User> (); int pageSize = 5; int page = (pageno-1) * 5; jdbcutils jdbc = new JDBcutils (); connexion conn = jdbc.connect (); string sql = "select * from books order by id limite?,?"; Try {pstmt = Conn.prepaStaTation (sql); page); pstmt.sentInt (2, pagesize); result = pstmt.ExecuteQuery (); while (result.next ()) {user user = new user (); user.setid (result.gentInt (1)); user.setName (result.getString (2)); user.setTNumber (Result.getString (3)); list.addd (user);} cord (exception e)); {// TODO GÉNÉRÉ AUTO-GÉNÉRÉ BLOCKE.PRINTSTACKTRACE ();} Enfin {jdbc.close (Conn, Pstmt, Result);} Retour List;}}La classe d'utilisateurs est utilisée pour stocker les données interrogées, et le code central est le suivant:
classe publique User {private int id; name de chaîne privée; numéro de chaîne privée; public int getID () {return id;} public void setid (int id) {this.id = id;} public string getName () {return nom;} public void setName (string name) {this.name = name;} public string getNumber () {return numéro;} public setNumber (string) {this.Number = return numéro;} nombre;}} 2. Couche de contrôle
La classe ListUser appelle l'objet UserDao pour interroger les données et attribue la page pour afficher les données. Le code central est le suivant:
Importer java.io.ioException; Importer java.io.printwriter; import java.util.arraylist; import java.util.list; import javax.servlet.servletException; import javax.servlet.http.httpleservlet; import javax.servlet.http.http.httpleservlet; import; javax.servlet.http.httpservletResponse; import com.dao.user; import com.dao.userdao; public class listUser étend httpsservlet {public listUser () {super ();} public void destren () {super.destroy (); // met juste la chaîne "destruction" dans le journal // mettez votre code ici} public void doget (httpsservletRequest request, httpservletResponse réponse) lance ServletException, ioexception {dopost (demande, réponse);} public void dopost (httpservletrequest request, httpserRetresponse réponse) throws serplexception, ioexpein gens null) {Pageno = Integer.ParseInt (Pageno);} lists = userdao.listUser (pageno); int recordCount = userdao.getPage (); request.settribute ("recordCount", listDao.getPage ()); pagenos ",", lists); request.setAtTraut pageno); request.getRequestDispatcher ("userList.jsp"). 3. Layer d'expression
La page de sortie userList.jsp est utilisée pour sortir les résultats de la requête en utilisant EL et JSTL. Le code central est le suivant:
<% @ Page Language = "Java" Import = "Java.util. *" Pageencoding = "utf-8"%> <% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <% @ taglib uri = "http://java.sun.com/jsp/fm/fmt "//Java. prefix = "fmt"%> <% @ taglib uri = "http://java.sun.com/jsp/jstl/fonctions" 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"> <html> 'userList.jsp' Page de départ </ title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <mettp-equiv = "keywords" Content = "Keyword1, Keyword2, Keyword3"> <meta http-equiv = "Description" content = "Ceci est ma page"> <! - <link rel = "Stylesheet" type = "Text / CSS" Href = "Styles.css"> -> <style type = "Text / CSS"> TD: TD {width: 150px; border: 2px gris; Center;} corps {Text-Align: Center;} A {Text-Decoration: Aucun;} Table {Border-Collapse: ENCLAPSE;} </ Style> </ Head> <Body> <H2 Align = "Center"> Informations de livre </H2> <Table Align = "Center"> <Tr> <Td> Numéro de livre </td> <td> livre de livres Titre </td> <td> Inventory </td> </tr> </ table> <Table Align = "Center"> <c: ForEach Items = "$ {listss}" var = "Person"> <tr> <Td> $ {Person.id} </ td> <td> $ {personne.name} </td> <td> $ {Person.nUmber } </td> </tr> </c: foreach> </ table> <br> <c: if test = "$ {pagenos> 1}"> <a href = "listUser? pagenos = 1"> home </a> <a href = "listUser? pagenos = $ {if pagenos-1}"> page précédente </a> test = "$ {pagenos <cordCount}"> <a href = "listUser? pagenos = $ {pagenos + 1}"> page suivante </a> </ c: if> <form action = "listUser"> <h4 align = "Center"> Total $ {recordCount} page <entrée = "text" value = "$ {pagenos}" NAM size = "1"> page <input type = "soumi" value = "Arrival"> </h4> </ form> </body> </html>Ce qui précède est l'exemple d'affichage de pagination simple du code de Java Web présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!