ページネーションは、Webアプリケーションを開発するときによく行う作業である必要があります。比較的簡単な方法で、データベースのページネーションとレイヤーを表示することができることが非常に重要です。
データベースレイヤーでは、Hibernateを使用してデータベースをページングし、データベースからQueried from Javabeansにクエリをカプセル化します。ビューレイヤーでは、ページングを簡単に実装できます。
PageBeanを作成します
パッケージcom.fishing.common.bean; java.util.listをインポートします。 @suppresswarnings( "unchecked")public class pagebean {プライベートリストリスト; //返されるレコードのリストプライベートint allrow; // Total Records Private Int TotalPage; //合計ページprivate int currentPage; //現在のページprivate int pagesize; //ページごとのレコード数private boolean isfirstpage; //それが最初のページであるかどうかプライベートブールイスラストページ。 //それが最後のページであるかどうかプライベートブールのhaspreviouspageであるかどうか。 //前のページのプライベートブールHasNextPageはありますか。 //次のページがありますかpublic ListgetList(){return list; } public void setlist(list list){this.list = list; } public int getAllrow(){return allrow; } public void setallrow(int allrow){this.allrow = allrow; } public int getTotalPage(){return totalpage; } public void settotalpage(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; } / *** / / ***初期化ページング情報* / public void init(){this.isfirstPage = isFirstPage(); this.islastPage = islastPage(); this.haspreviouspage = ishaspreviouspage(); this.hasnextpage = ishasnextpage(); }/ ** *// ** *ページの情報を判断するための以下、getter method(Is method) * * @return */ public boolean isfirstpage(){return(currentPage == 1); //現在のページが最初のページの場合} public boolean islastpage(){return culerpage == totalpage; //現在のページが最後のページの場合} public boolean ishaspreviouspage(){return currentPage!= 1; //現在のページが最初のページではない限り} public boolean ishasnextpage(){return currentPage!= totalPage; //現在のページが最後のページではない限り}/***//***ページの総数、静的方法を計算し、クラス名を介して外部から直接呼び出されます** @paramページサイズ*ページごとのレコード* @param allrow* @toturn total pages*/public static int inttalpage(最終int int int allow int {final int allow) AllRow / Pagesize:AllRow / Pagesize + 1; TotalPageを返します。 } / *** / / ***現在のページの開始レコードを計算*オフセットを返します。 } /*** / /***現在のページを計算します。要求されたURLでは0または "?page ="がない場合、1は代わりに使用されます * * @paramページ *渡されたパラメーター(つまり、0、つまり0、1は返されます) uppageを返す; }} DAOの抽象的なインターフェイスベースにメソッドを追加します。
パブリックリストQueryForPage(最終文字列HQL、最終的なINTオフセット、最終的なINTの長さ); DAOの実装クラスでメソッドを実装しますJianshedwdaoiimplパブリックリストqueryforpage(最終文字列HQL、最終的なINTオフセット、最終的な長さ){リスト= gethibernateTemplate()。executefind(){new hibernatecallback(){public object doinhibernate(セッションセッション)hibernateexception、sqlexection、 session.createquery.setFirster.setMaxResults(長さ);返品リスト。 }サービス抽象化レイヤーインターフェイスJianshedwserviceにメソッドを追加します。
public pagebean queryforpage(int pagesize、int currentPage);
サービス実装クラスにメソッドを実装してください。
public PageBean queryforpage(int pagesize、int page){final string hql = "from Jianshedwbean"; // queryステートメントint allrow = this.basedao.getallrowcount(hql); // Total Records int totalpage = pagebean.counttotalpage(pageize、allrow); //合計ページfinal int offset = pagebean.countoffset(pageize、page); //現在のページは、最終int length = pageizeの記録を開始します。 //ページごとのレコード数final int currentPage = pagebean.countcurrentpage(page);リスト<Jianshedwbean> list = this.badedao.queryforpage(hql、offset、length); //「1ページ」の記録pagebean.setPagesize(pagesize); pagebean.setCurrentPage(currentPage); pagebean.setallrow(allrow); pagebean.settotalpage(totalpage); pagebean.setlist(list); pagebean.init(); pagebeanを返します。 }ビューレイヤーアクションでページネーションモデルを作成します
パッケージcom.fishing.action.lcq; com.fishing.common.bean.jianshedwbeanをインポートします。 com.fishing.common.bean.pagebeanをインポートします。 com.fishing.service.lcq.jianshedwserviceをインポートします。 com.opensymphony.xwork2.actionsupportをインポートします。 @suppresswarnings( "serial")public class getinfojsdwlistaction extends actionsupport {private int page; //どのページprivate pagebean pagebean; //配布情報を含むBeanプライベートJianshedwbean Jianshedwbean; // private pagebeanページ;プライベートJianshedwservice jianshedwservice; public int getPage(){return Page; } public void setpage(int page){this.page = page; } public pagebean getPageBean(){return pagebean; } public void setPageBean(pagebean pagebean){this.pagebean = pagebean; } public jianshedwbean getjianshedwbean(){return jianshedwbean; } public void setjianshedwbean(jianshedwean jianshedwbean){this.jianshedwbean = jianshedwbean; } public Jianshedwservice getjianshedwservice(){return jianshedwservice; } public void setjianshedwservice(jianshedwservice jianshedwservice){this.jianshedwservice = jianshedwservice; } @Override public string execute()スロー例外{//ページのページビーン、パラメーターページサイズはページごとに表示されるレコードの数を示します。ページは現在のページです。成功を返す; }} JSPでページを書きます
<tr> <td> </td> <td> <s:if test = "%{pagebean.currentpage == 1}">ホーム前のページ</s:if> <s:els> <a href = "jiangguan/getjsdwinfos.action?page = 1"> home </a> <a <a <a href = "jiangguan/getjsdwinfos.action?page = <s:property value ="%{pagebean.currentpage-1} "/>"/>前のページ</a> </s:else> </td> <td> <s:if test = "%{pagebean.currentpage!= pagebean.totalpage} href = "jiangguan/getjsdwinfos.action?page = <s:property value ="%{pagebean.currentpage+1} "/>">次のページ</a> <a href = " </s:if> <s:else>次のパゲラストページ</s:else> </td> <td> <div align = "center"> page <s:property value = "pagebean.currentpage"/>/<s:プロパティ値= "pagebean.totalpage"/>> <s:sproperty valuign = "pagebean.allow"/div> </td> </td> </tr>上記は単なるコードの実装であり、構成ファイルを説明しておらず、読者は状況に応じて構成します。
この記事があなたに役立つことを願っています。これは、データベースとインターフェイスのSSH2実装のページネーションコンテンツを導入するためのすべてです。みんなが私たちのウェブサイトをフォローし続けることを願っています! Javaを学びたい場合は、このWebサイトをフォローし続けることができます。