Es gibt zwei gemeinsame Paging -Implementierungsmethoden:
1. Ändern Sie SQL Jedes Mal, wenn Sie die Seite drehen, relevante Parameter an SQL übergeben und in die Datenbank gehen, um die Daten der Seite in Echtzeit zu ermitteln und sie anzuzeigen.
2. Ermitteln Sie alle Daten in einer bestimmten Tabelle in der Datenbank und erhalten Sie dann bestimmte Daten, indem Sie diese in der Geschäftslogik verarbeiten.
Für ein einfaches Managementsystem mit einer geringen Datenmenge ist die erste Implementierungsmethode relativ einfach zu verwenden, um weniger Code zu implementieren, um die Funktion des Pagings zu implementieren. In diesem Artikel wird Ihnen diese Methode auch vorgestellt:
Code -Snippet:
1. Seite.java
Paket com.cm.contract.common; import org.apache.commons.lang.Stringutils; import org.apache.commons.lang.builder.toStringBuilder; / ** Pagination Class*@Author fengwei*@date 2016-5-23*/ public class implementiert java.io.serializable {private statische endgültige long serialversionuid = 1l; // Vorherige Seite private Boolean HaSprepage; // Die nächste Seite private boolean hasNextPage; // Wie viele Elemente werden pro Seite angezeigt: Standard 20 private Long EveryPage = 20L; // Gesamtzahl der Seiten Private Long TotalPage; // Die aktuelle Seite: Standard Seite 1 private Long CurrentPage = 1L; // Einstieg ein Index Private Long begindex; // Ende des Index Private Long EndinIndex beenden; // wie viele private lange Totalcount; // Spaltenname private Zeichenfolge sortName; // Status sortieren private String sortstate; // Informationen sortieren private Zeichenfolge SortInfo; // sortieren, ob private boolesche Sortierung sortiert werden soll = false; private String defaultInfo = ""; public String getDefaultInfo () {return defaultInfo; } public void setDefaultInfo (String defaultInfo) {this.DefaultInfo = defaultInfo; } public String tertortInfo () {return sortInfo; } public void setSortInfo (String sortInfo) {this.sortInfo = SortInfo; } public string tertortName () {return sortName; } public void setSortName (String sortName) {setPagesSortState (SortName); } public String tertortState () {return sortState; } public void setSortState (String sortState) {this.sortState = sortState; } public page () {} / *** häufig verwendet, verwendet zur Berechnung von Paging** / public Page (lange TotalRecords) {this.totalCount = TotalRecords; settotalpage (Gettotalpage (TotalRecords)); } / ** * Verwenden Sie *, wenn Sie festlegen, wie viele Einträge auf jeder Seite angezeigt werden * * / public (lange jederpage, lange TotalRecords) {this.EveryPage = EveryPage; this.totalcount = TotalRecords; settotalpage (Gettotalpage (TotalRecords)); } / *** @Param Status -Statuscode* @param Wert Wie viele Seiten zu gehen oder festlegen, wie viele Elemente pro Seite angezeigt werden sollen oder als Sortierspaltenname* / public void pageestate (int Index, String -Wert) {sort = false; Switch (Index) {case 0: setEverypage (long.parselong (value)); break; Fall 1: First (); Break; Fall 2: vorher (); Break; Fall 3: Next (); Break; Fall 4: last (); Break; Fall 5: sort = true; sort (value); brechen; Fall 6: // zu der angegebenen Seite setCurrentPage (Long.Parselong (Wert)); brechen; }} / *** vorherige Seite* / private void first () {currentPage = 1l; } private void vorher () {currentPage--; } private void next () {currentPage ++; } private void last () {currentPage = TotalPage; } private void sort (String sortName) {// Setzen Sie die Sortierstatus -SetPagesSortstate (sortName); } / *** Berechnen Sie die Gesamtzahl der Seiten** / private long GettotalPage (lange TotalRecords) {Long TotalPage = 0L; EveryPage = EveryPage == NULL? 10L: EveryPage; if (TotalRecords % EveryPage == 0) TotalPage = TotalRecords / EveryPage; sonst {TotalPage = TotalRecords / EveryPage + 1; } return TotalPage; } public long getBeginIndex () {this.beginIndex = (currentPage - 1) * EveryPage; zurückgeben. BeginIndex; } public void setBeginIndex (langstartindex) {this.beginIndex = begindex; } public Long GetCurrentPage () {this.currentPage = currentPage == 0? 1: Strompage; zurück diese. } public void setCurrentPage (Long CurrentPage) {if (0 == currentPage) {currentPage = 1l; } this.currentPage = currentPage; } public Long GetEverypage () {this.Everypage = EveryPage == 0? 10: EveryPage; kehre dies zurück. JEDERPAGE; } public void setEverypage (lang EveryPage) {this.Everypage = EveryPage; } public boolean gethasnextPage () {this.hasnextPage = (currentPage! = TotalPage) && (TotalPage! = 0); zurückgeben. HasnextPage; } public void sethasnextPage (boolean hasNextPage) {this.hasnextPage = hasNextPage; } public boolean gethasprepage () {thas.hasprepage = currentPage! = 1; kehren Sie dies zurück. Hasprepage; } public void sethasprepage (boolean HaSprepage) {thaS.Hasprepage = HaSprepage; } public Long gettotalpage () {retotal.totalPage; } public void setotalpage (Long TotalPage) {if (this.currentPage> TotalPage) {this.currentPage = TotalPage; } this.totalpage = TotalPage; } public long gettotalcount () {retot this.totalCount; } public void settotalCount (lange TotalCount) {settotalpage (GettotalPage (TotalCount)); this.totalcount = TotalCount; } @Override public String toString () {return toStringBuilder.reflectionToString (this); } /*** Setzen Sie den Sortierstatus*** /private void setPagesSortSortSortSortSortSortSortSortSortSortSortSortSortState (String NewPagesOrtName) {// Beurteilen Sie, ob das vorherige Sortierfeld leer ist, wenn (stringutils.isempty (sortname)) {// Standardsortierung aufsteigere Reihenfolge this.sortState = pageil.asc; this.sortInfo = pageutil.page_asc; } else {if (Stringutils.equalSignoreCase (newpageSortName, sortName)) {// beurteilen Sie den Sortier -Sortierstatuswert if (stringutils.equalSignoreCase (sortState, pageuutil.asc)) {this.sortstate = pageuTil.desc; this.sortInfo = pageutil.page_desc; } else {this.sortState = pageutil.asc; this.sortInfo = pageutil.page_asc; }} else {// Standard this.sortState = pageutil.asc; this.sortInfo = pageutil.page_asc; }} sortName = newpageSortname.tolowerCase (); } public boolean issort () {return sort; } public void setSort (boolean sortieren) {this.sort = sort; } public Long getendIndex () {this.endinIndex = (currentPage) * EveryPage; Rückkehr endinIndex; } public void setendinIndex (Long EndinIndex) {this.endinIndex = endinIndex; }} 2.Pagestate.java
Paket com.cm.contract.common; import org.apache.commons.lang.Stringutils; /** Paginierungsstatusklasse* @Author fengwei* @date 2016-5-23* /public enum pagestate { /*** Legen Sie fest, wie viele Teile pro Seite angezeigt werden sollen Seiten zu gehen * */ gopage; / *** @param Value Index Name* @return return return Index Index Index Index Index*/ public static int getRordinal (String -Wert) {int index = -1; if (stringutils.isempty (value)) {return index; } String newValue = stringutils.trim (Wert) .ToUpperCase (); try {index = valueOf (newValue) .ordinal (); } catch (illegalArgumentException e) {} return index; }} 3.PageUtil.java
/ ** * Pagination Tool Class * @Author fengwei * @date 2016-5-23 */ public class pageutil {public static Final String asc = "asc"; public static Final String Desc = "Desc"; public static Final String page_desc = "↓"; public static Final String page_asc = "↑"; public static Final String page_null = ""; public static Final String Session_Page_key = "Seite"; / *** Initialisieren Sie die Paging -Klasse* @param initpagesql unpatched query if (index <0) {page = new Page (totalCount); } else { / ** Wie viele Teile werden pro Seite angezeigt* / long woresPage = null == Wert? 10: Long.Parselong (Wert); / ** die Paging -Klasse in der Sitzung erhalten, um das Speichern des Paging -Status zu erleichtern*/ page = SessionPage; Page.Seteverypage (EVERPAGE); Page.SettotAlcount (TotalCount); } Rückgabeseite; } / *** Wenn die Seite klickt: Homepage, vorherige Seite, nächste Seite, letzte Seite, sortieren und die Seite ist die erste Seite* @param Index Paging Status* @param Value Sortiername oder Seite ist die erste Seite* / public static Seite execPage (int Index, Zeichenfolge Wert, Seite SessionPage) {Seite Seite = SessionPage; / ** Aufrufmethode zur Paging -Berechnung*/ page.paagestate (Index, Wert); Rückgabeseite; }} 4.DefaultController.java Dieser Teil kann flexibel verwendet werden
Paket com.cm.contract.common; importieren javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpServletResponse; import Javax.servlet.http.httpSession; import org.springframework.web.bind.annotation.modelattribute; /** * Öffentliche Anfrage und Antworttitel extrahieren: DefaultController Beschreibung: * * @author fengwei * @date 2016-5-6 3:30:32 pm * /public class DefaultController { /** * Die dreischichtige Paginierungs-Satzklasse von ORACel führt eine Paginierungskalkulation durch, bevor die Daten angezeigt werden! * * @param querysql * Die Abfrage -SQL -Anweisung, nicht paginiert * @param TotalCount * Die Gesamtzahl der Einträge, die auf der Abfrage sql erhalten wurden. } / ** Seitenstatus, dieser Status ist auf der Seite erstellt und hat nichts mit Business* / String pageAction = Request.getParameter ("pageActction"); String value = request.getParameter ("pageKey"); / ** Index beurteilen, um den Seitungsstatus zu beurteilen Seite Seite = NULL; / ** * INDEX <1 Es gibt nur zwei Zustände 1 Wenn der erste Anruf in der Seitenstatusklasse Null -Rückgabe -1 2 keinen Wert gibt, wenn die Seite festgelegt wird, wie viele Teile pro Seite angezeigt werden: * index = 0, wenn viele Teile pro Seite angezeigt werden, muss die Seitenklasse neu berechnet werden if (index <1) {page = pageuTil.inintpage (TotalCount, Index, Wert, SessionPage); } else {page = pageuTil.execPage (Index, Wert, SessionPage); } setSession (Anfrage, Seite); Rückgabeseite; } private Seite getPage (httpServletRequest -Anforderung) {Page page = (page) request.getSession (). getAtTribute (pageuutil.session_page_key); if (page == null) {page = new Page (); } Rückgabeseite; } private void setSession (httpServletRequest -Anforderung, Seite Seite) {request.getSession (). setAttribute (pageuutil.session_page_key, Seite); }} Wie man verwendet:
5. Controller.java
/ *** Paging -Bedingungen, die nach Modell hinzugefügt wurden. model.addattribute ("Benutzername", Namestry); // Anzahl der Seiten long TotalCount = logService.PageCounts (Modell); // Seite Anzeige page = execUTePage (Anfrage, TotalCount); if (page.issort ()) {model.put ("orderName", page.getSortname ()); model.put ("descasc", page.getSortState ()); } else {model.put ("orderName", "logime"); Modell.put ("Descasc", "Desc"); } model.put ("startIndex", page.getBeginIndex ()); model.put ("EndIndex", page.getendinIndex ()); ModelAndView mv = new ModelAndView (); // Pagination Query Logiste = logService.Pagelist (Modell); mv.addObject ("Logiste", Logiste); mv.setViewName ("/jsp/log"); MV zurückgeben; }} 6. Mehrere Abfrageanweisungen in Maybatis
// Pagination Query <select id = "pagelist" parameterType = "map" resultmap = "baseresultmap"> select ttt. SQL Injektion. -> und type = #{type, jdbctype = varchar} </if> </wobei> bestellen $ {orderName} $ {descasc}) tt) ttt <Where> <if test = "startIndex! = Null und startindex! <! [Cdata [und rn <= $ {EndIndex}]> </if> </wob '%$ {Benutzername}%' </if> </where> </select> 7. Rezeptionsseite index.jsp
// Fügen Sie einfach das DIV in das Seitenlayout hinzu // Benutzername als Bedingung // <jsp: param name = "url" value = "/log/index.do?"/> Die Frage -Marke ohne Bedingung muss existieren <body> <div align = "right" style = "height: 20"> <jsp: inclupt page = "/jsp/page.jsp"> <jsp: param name = "url" value = "/log/index.do? userername = $ {userername}"/> </jsp: include> </div> </body> 8. Seite.JSP Referenziert
<%@ page Language = "Java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <c: set var = "page" = "$" {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{Sessions "/i%"/"Page" "page" <c: set var = "path" value = "$ {pageContext.request.contextPath}" /> <c: set var = "url" value = "$ {param.url}" /> <c: set var = "urlparams" value value = "$ {path} /$ {url}" /> <tr> <td colspan = "5"> $ {urlparams} Gesamt $ {page.totalCount} Aufzeichnungen Total $ {page.totalpage} pages pro Seite $ {page.everypage test="${page.hasPrePage eq false}"> <<Homepage<PrePage</c:when> <c:otherwise> <a href="${pathurl}&pageAction=first${urlParams}"><<Homepage</a> <a href="${pathurl}&pageAction=previous${urlParams}" /> <Vorherige Seite </a> </c: ansonsten> </c: Wählen Sie> || <C: Wählen Sie> <c: Wenn test = "$ {page.hasnextPage eq false}"> Nächste Seite> Letzte Seite >> </c: Wenn> <C: ansonsten> <a href = "$ {pathUrl} & pageAction = Next $ {urlparams}"> nächste Seite> </a> <a <a a <a a <a a href = "$ {pathurl} & pageActction = last $ {urlparams}"> Letzte Seite >> </a> </c: ansonsten> </c: wählen> <select name = "indexChange" id = "Index" Indect "aufchange =" end = "$ {page.totalpage}" step = "1"> <option value = "$ {index}" $ {page.currentPage EQ Index? "Selected": ""}> $ {index} Seite </option> </c: foreach> </select> Anzeige pro Seite: <select name = "everyPage" id = "EveryPage" onchange = "seteverypage (this.value); value = "$ {pageCount}" $ {page.Everypage EQ PageCount? "selected" : ""}> ${pageCount}bar</option> </c:forEach> </select> </td> </td> </tr> <div style='display: none'> <a class=listlink id="indexPageHref" href='#'></a> </div> <script> function getCurrentPage(index){ var a = document.getElementById ("IndexPageHref"); a.href = '$ {pathurl} & pageActction = gopage & pageKey ='+index+'$ {urlparams}'; A.SetatTribute ("Onclick", ''); a.click ("return false"); } function setEverypage (EveryPage) {var a = document.getElementById ("indexpageHref"); var CurrentPage = document.getElementById ('IndexChange'). Wert; a.href = '$ {pathurl} & pageActction = setPage & pageKey ='+EveryPage+'$ {urlparams}'; A.SetatTribute ("Onclick", ''); a.click ("return false"); } function sortPage (sortName) {var a = document.getElementById ("indexpageHref"); a.href = '$ {pathurl} & pageActction = sort & pageKey ='+sortName+'$ {urlparams}'; A.SetatTribute ("Onclick", ''); a.click ("return false"); } </script>Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.