SpringMVC+Hibernate ist zu einer Rahmenintegration geworden, die viele Menschen jetzt verwenden. Vor kurzem habe ich gelernt und erforscht. Da viele Projekte in Entwicklungsprojekte die Paging -Funktion verwenden, verweisen wir hier auf einige Informationen im Internet und verwenden SpringMVC4+Hibnerate4, um beim Lernen und Zusammenfassen des Paging -Funktionscodes zusammenzufassen. Obwohl es nicht unbedingt universell ist, ist es für Anfänger von Referenzwert.
Der grundlegende Prozess der Paginationsinimposition:
1. Kategorie Pagination Tool
Ideen:
1. Schreiben Sie eine Seitenklasse und definieren Sie Attribute, die enthalten sollten: Abfrageergebnissatz, Abfragebatensätze Gesamt, Zeigen Sie Datensätze pro Seite, aktuelle Seite und andere Attribute an.
2. Schreiben Sie die Seitenklasse und definieren Sie die Methode, die: Gesamtzahl der Seiten, mit der Aufzeichnung der aktuellen Seite, der Homepage, der nächsten Seite, der vorherigen Seite, der letzten Seite und anderer Methoden definieren sollte
Der Code ist wie folgt:
Paket cn.myic.model; import java.util.list; public class Page <e> {// Ergebnis set private Liste <e> Liste; // Gesamtzahl der Abfragen private Int Totalrecords; // Wie viele Datensätze pro Seite private int pageSize; // Welche Seite private int pageno; /*** @return Gesamtzahl der Seiten**/public int getTotalpages () {return (TotalRecords+PageSize-1)/pageSize; } / *** Berechnen Sie den aktuellen Seiten-Start-Datensatz* @param pageSize Anzahl der Datensätze pro Seite* @param curral Rückset zurück; } / *** @return Homepage** / public int getoppageno () {return 1; } / *** @return vorherige Seite** / public int getPreviousPageno () {if (pageno <= 1) {return 1; } return pageno-1; } / *** @return nächste Seite** / public int getNextPageno () {if (pageno> = getBottompageno ()) {return getBottompageno (); } return pageno+1; } / *** @return Letzte Seite** / public int getbottompageno () {return gettotalpages (); } publiclist <e> getList () {return list; } public void setList (Liste <E> Liste) {this.list = list; } public int getTotalRecords () {return TotalRecords; } public void settotalrecords (int TotalRecords) {this.totalRecords = TotalRecords; } public int getPageSize () {return pageSize; } public void setPageSize (int pageSize) {this.pageSize = pageSize; } public int getPageno () {return pageno; } public void setpageno (int pageno) {this.pageno = pageno; }} 2. Schichtmethode
Idee: Definieren Sie eine Pagination -Query -Methode, setzen Sie Parameter: Wenn die Seitenzahl und wie viele Datensätze auf jeder Seite angezeigt werden
Der Code ist wie folgt:
/ *** Pagination Query* @param HQL-Abfragebedingungen* @param offset starten Sie Aufzeichnung* @param Länge Abfrage mehrere Datensätze gleichzeitig* @return return the Query Record Collection*/ @SuppressWarnings ("Unbefugelt") @Override public List <Kurs> QueryForPage (Int Offset, int Länge) {// toDo auto auto-gent method method stubage, stup-kurs-kurs-kurs-{// toDo auto auto-kurs-method method stubage, stup-kurs-kurs-kurs-kurs-kurs-{// todo auto-kurs-liste Versuchen Sie {query query = getSession (). createEquery ("From Course"); query.setFirstresult (Offset); query.setMaxResults (Länge); EntityList = query.list (); } catch (runTimeException re) {throw re; } return entityList; } 3. Service Layer -Methode
Ideen:
1. Definieren Sie eine Paginierungsabfragemethode und setzen Sie Parameter fest: Wenn die Seitenzahl und wie viele Datensätze auf jeder Seite angezeigt werden, wird das Pagination Objekt (Seite), das das Abfrageergebnis zurückgibt
2. Erhalten Sie durch die DAO -Schicht die Gesamtzahl der Datensätze der Abfrageentität
3. Erhalten Sie die Anzahl der Datensätze, die auf der aktuellen Seite beginnen
4. Holen Sie sich durch die DAO -Schicht die Pagination -Abfrage -Ergebnis -Set
5. in das Seitenobjekt einstellen
Der Code ist wie folgt:
/ *** Pagination Query* @Param Current Page Current Seitennummer: Die Anzahl der jetzt angezeigten Seiten. Page = new Page (); // Gesamtzahl der Datensätze int allrow = Coursedao.getallRowCount (); // Die aktuelle Seite startet mit der Aufzeichnung von int offset = page.countOffset (currentPage, pageSize); // Pagination Query Ergebnissatzliste <Kurs> list = Coursedao.QueryForpage (Offset, pageSize); page.setpageno (currentPage); page.setPageSize (pageSize); Page.SettotalRecords (Allrow); Page.SetList (Liste); Rückgabeseite; }
4. Controller Layer -Methode
Das Design der Controller -Ebene, wenn Sie die Abfrage der Betriebsseite drehen, müssen Sie nur den aktuellen Parameter der Seitenzahlen übergeben.
Der Code ist wie folgt:
@RequestMapping (value = "/showall.do") public String findAllcourse (httpServletRequest -Anforderung, httpServletResponse -Antwort) {try {String pageno = request.getParameter ("pageno"); if (pageno == null) {pageno = "1"; } Page page = courSeService.QueryForPage (Integer.Valueof (pageno), 10); Request.SetAttribute ("Seite", Seite); LIST <Kurs> cours = page.getList (); Request.SetAttribute ("Kurse", Kurs); } catch (Ausnahme e) {e.printstacktrace (); } return "cours/curse_list"; } 5. Schicht anzeigen JSP -Anzeige
Mehrere Schaltflächen für Paging -JSP -Seiten werden gemäß dem Urteil der aktuellen Seitennummer angezeigt.
Der Code ist wie folgt:
<td colspan = "6" align = "center" bgcolor = "#5ba8de"> total $ {page.totalRecords} recordStotal $ {page.totalpages} Die aktuelle Seite <br> <a href = "$ {path} /course/showall.do?pageno = $ type = "button" name = "FristPage" value = "home"/> </a> <c: wählen> <c: Wenn test = "$ {page.pageno! Seite "/> </a> </c: Wenn> <C: ansonsten> <Eingabe type =" button "deaktiviert =" deaktiviert "name =" vorher "value =" vorherige Seite "/> </c: ansonsten> </c: wählen> <c: wählen> <c: Wenn test =" $ {page.pageno! href = "$ {path} /course/showall.do?pageno = $ {Page.NextPageno}"> <Eingabe type = "name" name = "NextPage" value = "NextPage"/> </a> </c: wenn> <c: ansonsten> <Eingabe type type = "disabed =" disabled = "disabled =" disabled </c: wählen Sie> <a href = "$ {path} /course/showall.do?pageno = $ {page.bottompageno}"> <Eingabe type = "name =" lastPage "value =" Last Page "/> </a> </td> </tr> </tr> </tr>Seiteneffekt:
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.