Pagination sollte eine Arbeit sein, die wir bei der Entwicklung von Webanwendungen häufig ausführen. Es ist sehr wichtig, die Paginierung von Datenbanken implementieren zu können und Ebenen relativ einfach anzusehen.
Verwenden Sie in der Datenbankschicht Hibernate, um die Datenbank zu pagieren und die aus der Datenbank in JavaBeans abgefressenen Daten zu inkapseln. In der View -Ebene kann Paging problemlos implementiert werden.
Seitenbekleidung erstellen
Paket com.fishing.common.bean; importieren java.util.list; @SuppressWarnings ("Deaktiviert") PUBLIC CLASS SEITEBEAN {private Liste; // Liste der Datensätze, die private int Allrow zurückgegeben werden sollen; // Total Records Private Int TotalPage; // Gesamtseiten Private int CurrentPage; // aktuelle Seite private int pagessize; // Anzahl der Aufzeichnungen pro Seite private boolean isfirstpage; // ob es sich um die erste Seite handelt, die private boolean Islastpage; // ob es sich um die letzte Seite handelt, privat boolean Hasprevious Page; // gibt es eine frühere Seite privat boolean hasNextPage; // gibt es eine nächste Seite öffentliche Liste getList () {returnlist; } public void setList (Liste) {this.list = list; } public int getAllrow () {return Allrow; } public void setAllrow (int allrow) {this.Allrow = allrow; } public int getTotalpage () {return TotalPage; } public void setotalpage (int TotalPage) {this.totalPage = TotalPage; } public int getCurrentPage () {return CurrentPage; } public void setCurrentPage (int currentPage) {this.currentPage = currentPage; } public int getPageSize () {return pageSize; } public void setPageSize (int pageSize) {this.pageSize = pageSize; } / *** / / ***Initialisierung Paging -Informationen* / public void init () {this.isfirstpage = isfirstpage (); this.islastPage = islastpage (); this.HaspreviousPage = isHaspreviousPage (); this.hasnextPage = iShasnextPage (); }/ ** *// ** * Folgendes, um die Informationen der Seite zu beurteilen. // Wenn die aktuelle Seite die letzte Seite ist} public boolean isHaspreviousPage () {return currentPage! = 1; // Solange die aktuelle Seite nicht die erste Seite ist} public boolean ishasnextPage () {return currentPage! = TotalPage; // Solange die aktuelle Seite nicht die letzte Seite ist}/***//*** Berechnen Sie die Gesamtzahl der Seiten, eine statische Methode, und wird von außen direkt über den Klassennamen** @param pageSize* Anzahl der Datensätze pro Seite* @param Allrow* Total Records* @return Total Pages*/public static int countalpage (endgültige Int -Pages, Final Int Pages, Final Int Pages, Allrow) aufgerufen. pageSize == 0? Allrow / PageSize: Allrow / PageSize + 1; Return TotalPage; } / *** / / *** Berechnen Sie den Startsatz der aktuellen Seite** @param pageSize* Anzahl der Datensätze pro Seite* @Param CurrentPage* aktuelle Seite* @return Current Page Start Recordnummer* / public static int countOffset (endgültige int pageSize, endgültige Int CurrentPage) {endgültig int offset = pageSize* (currentSpage - (currentSpage - 1); Rückset zurück; } /*** / /*** Berechnen Sie die aktuelle Seite. Wenn es 0 oder es gibt keine "? Page =" in der angeforderten URL, wird 1 stattdessen verwendet * * @param Seite * Der übergebene Parameter (möglicherweise leer, dh 0, dann wird 1 zurückgegeben) * @return Current Page */ public static int countCurrentPage (int Seite) {endgültig int curpage = (page == 0? 1: page); Return Curpage; }} Fügen Sie Methoden zum abstrakten Schnittstellenbasis von DAO hinzu:
öffentliche Liste QueryForPage (endgültige String -HQL, endgültiger int -offset, endgültige intlänge); Implement method in Dao's implementation class JianSheDWDaoImpl public List queryForPage(final String hql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = Session.createTequery (HQL); Rückgabeliste; } Fügen Sie Methoden in die Services -Abstraktionsschicht -Schnittstelle JianshedwService hinzu:
public PageBean queryForpage (int pageSize, int CurrentPage);
Implementieren Sie die Methoden in der Service -Implementierungsklasse:
public pageBean queryForpage (int pageSize, int page) {Final String hql = "von Jianshedwbean"; // Abfrageanweisung int allrow = this.basedao.getallRowCount (HQL); // Total Records int TotalPage = PageBean.CountTotalPage (PageSize, Allrow); // Gesamtseiten endgültig int offset = pagebean.countOffset (pageSize, Seite); // Die aktuelle Seite startet mit der Aufzeichnung der endgültigen int länge = pageSize; // Anzahl der Datensätze pro Seite endgültig int currentPage = pagebean.CountCurrentPage (Seite); Liste <jianshedwbean> list = this.basedao.queryForpage (HQL, Offset, Länge); // Aufzeichnung von "One Page" // die Paging -Informationen in der BEAN -PageBeane -Seite eines Pagebeams () speichern; pagebean.setPageSize (pageSize); PageBean.SetCurrentPage (CurrentPage); pagebean.setAllrow (Allrow); PageBean.SettotalPage (TotalPage); PageBean.SetList (Liste); pagebean.init (); Return PageBohnen; } Erstellen Sie ein Paginationsmodell in der Sichtschichtaktion
Paket com.fishing.action.lcq; import com.fishing.common.bean.jianshedwbean; import com.fishing.common.bean.pagebean; import com.fishing.service.lcq.jianshedwservice; import com.opensymphony.xwork2.actionsupport; @SuppressWarnings ("Serial") öffentliche Klasse // Welche Seite private Seitenbekette Seitenbekette; // Bean mit Vertriebsinformationen Privat Jianshedwbean Jianshedwbean; // private Seitenbekette Seite; Privat Jianshedwservice Jianshedwservice; public int getPage () {return page; } public void setPage (int page) {this.page = page; } public PageBean getPageBean () {Rückgabe -Seitenbean; } public void setPageBean (PageBean PageBeane) {this.pageBean = PageBean; } public Jianshedwbean getJianshedwbean () {return jianshedwbean; } public void setjianshedwbean (jianshedwbean jianshedwbean) {this.jianshedwbean = jianshedwbean; } public JianshedwService getJianshedwService () {return JianshedwService; } public void setjianshedwService (jianshedwservice jianshedwservice) {this.jianshedwservice = jianshedwService; } @Override public String execute () löst eine Ausnahme aus. {// Die Seitenbekleidung der Pagination gibt der Parameter pageSize die Anzahl der pro Seite angezeigten Datensätze an. Die Seite ist die aktuelle Seite. Erfolgserfolg; }} Schreiben Sie eine Seite in JSP
<tr> <td> </td> <td> <s: if test = "%{pageBean.currentPage == 1}"> Home vorherige Seite </s: if> <s: else> <a href = "jiangguan/getJsdwinfos.action? href = "jiangguan/getJsdwinfos.Action? Page = <s: Eigenschaftswert ="%{pageBean.currentPage-1} "/>"/> href = "jiangguan/getJsdwinfos.Action? page = <s: Eigenschaft value ="%{pageBean.currentPage+1} "/>"> nächste Seite </a> <a href = "jiangguan/getJsdwinfos.Action? Page = <s: Property Value =" pageBean.toToTalpage "/>". <s:else> Next pageLast page</s:else> </td> <td> <div align="center"> Page<s:property value="pageBean.currentPage" /> / <s:property value="pageBean.totalPage" /> <s:property value="pageBean.allRow" /> records</div> <div align="center"></div> </td> </td> </tr> Das obige ist nur eine Implementierung des Codes und erklärt die Konfigurationsdatei nicht und der Leser konfiguriert ihn gemäß der Situation.
Ich hoffe, dieser Artikel wird Ihnen hilfreich sein. Dies ist alles für Sie, um den Paginationsinhalt der SSH2 -Implementierung von Datenbank und Schnittstelle einzuführen. Ich hoffe, dass alle weiterhin unserer Website folgen werden! Wenn Sie Java lernen möchten, können Sie diese Website weiter verfolgen.