SpringMVC+Hibernateは、多くの人が現在使用しているフレームワーク統合になっています。最近、私は学び、探索しています。開発プロジェクトの多くのプロジェクトはリストページング機能を使用しているため、ここではインターネット上の情報を参照し、SpringMVC4+Hibnerate4を使用して、学習と要約中に要約し、ページング関数コードを取得します。必ずしも普遍的ではありませんが、初心者にとっては参照値です。
ページネーション実装の基本プロセス:
1。ページネーションツールカテゴリ
アイデア:
1.ページクラスを記述し、属性を定義します。これには、クエリ結果セット、クエリレコードの合計、ページごとの表示レコード、現在のページ、その他の属性を含みます。
2。ページのクラスを記述し、メソッドを定義します。これには、ページの総数、現在のページの録音の開始、次のページ、前のページ、最終ページ、その他のメソッドを含める必要があります
コードは次のとおりです。
パッケージcn.myic.model; Import java.util.list; public class page <e> {// results set set setプライベートリスト<e> list; //クエリレコードの総数private int totalRecords; //ページごとのレコード数プライベートINTページサイズ。 //どのページPrivate Int Pageno; /*** @returnページの合計数**/public int getTotalPages(){return(totalRecords+pagesize-1)/pagesize; } / ***現在のページを計算しますレコードの開始* @paramページごとのレコードの数* @param currentPage現在* @return現在のページはレコード番号を開始します* / public int countoffset(int culterpage、int pagesize){int offset = pagesize*(currentPage-1);オフセットを返します。 } / *** @returnホームページ** / public int gettoppageno(){return 1; } / *** @return前のページ** / public int getPreviousPageno(){if(pageno <= 1){return 1; } pageno-1を返します。 } / *** @return次ページ** / public int getNextPageno(){if(pageno> = getbottompageno()){return getbottompageno(); } pageno+1を返します。 } / *** @return last page** / public int getbottompageno(){return gettotalpages(); } public list <e> getList(){return list; } public void setList(list <e> list){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(){pagenoを返します。 } public void setpageno(int pageno){this.pageno = pageno; }} 2。レイヤーメソッド
アイデア:ページネーションクエリメソッドを定義し、パラメーターを設定します:ページ番号と各ページに表示されるレコードの数が表示されます
コードは次のとおりです。
/ ***ページネーションクエリ* @param hqlクエリ条件* @param offset recording* @param length query一度にいくつかのレコード* @returnクエリレコードコレクションを返します*/ @suppresswarnings( "unchecked")@override public list <course> queryforpage(int offits、nut = nult <コースtry {query query = getsession()。create query( "from course"); query.setfirstreSult(offset); query.setMaxResults(length); entityList = query.list(); } catch(runtimeexception re){throw re; } return entitityList; } 3。サービスレイヤーメソッド
アイデア:
1.ページネーションクエリメソッドを定義し、パラメーターを設定します:ページ番号と各ページに表示されるレコードの数、クエリ結果を返すページネーションオブジェクト(ページ)
2。DAOレイヤーを通じて、クエリエンティティの総数を取得します
3.現在のページから始まるレコードの数を取得します
4。DAOレイヤーを通して、ページネーションクエリ結果セットを取得します
5。ページオブジェクトに設定します
コードは次のとおりです。
/ ***ページネーションクエリ* @param currentPage現在のページ番号:現在表示されているページ数* @paramページサイズページごとに表示されるレコード数* @return beanは、ページネーション情報(レコードセットリストを含む)*/ @suppresswarnings( "unchecked")@Override公開ページ(intcultporpoge(int curbrepoto)autot autot page、perpoperporpage、interpoperporpage)ページページ= new Page(); //レコードの総数int allrow = coursedao.getallrowcount(); //現在のページは、int offset = page.countoffset(currentPage、Pagesize)の記録を開始します。 //ページネーションクエリ結果セットリスト<course> list = coursedao.queryforpage(offset、pagesize); page.setpageno(currentPage); page.setPagesize(pagesize); page.settotalRecords(allRow); page.setlist(list);返信ページ。 }
4。コントローラーレイヤーメソッド
コントローラーレイヤーの設計は、ページを操作するときにクエリを操作するときに、現在のページ番号パラメーターを渡す必要があります。
コードは次のとおりです。
@RequestMapping(value = "/showall.do")public string findallcourse(httpservletrequest request、httpservletresponse応答){try {string pageno = request.getParameter( "pageno"); if(pageno == null){pageno = "1"; }ページ= courseService.queryforpage(integer.valueof(pageno)、10); request.setattribute( "page"、page); List <Course> course = page.getList(); request.setattribute( "courses"、course); } catch(Exception e){e.printstacktrace(); } "course/course_list"を返します。 } 5.レイヤーJSPディスプレイを表示します
Paging JSPページのいくつかのボタンは、現在のページ番号の判断に従って表示されます。
コードは次のとおりです。
<td colspan = "6" align = "center" bgcolor = "#5ba8de">合計$ {page.totalRecords} Recordstotal $ {page.totalpages} type = "button" name = "fristpage" value = "home"/> </a> <c:seace> <c:test = "$ {page.pageno!= 1}"> <a href = "$ {path}/course/showall.do?pageno = $ {page.periouspageno =" ">" preivary = "peultiano =" peuriouspageno = "preigano =" peuriouspageno = "preigano =" preiverspageno " Page "/> </a> </c:when> <c:それ以外の場合> <入力タイプ="ボタン "disabled =" disabled "name ="前page "値="前ページ "/> </c:それ以外の場合は> </c:> </c:chode> <c:chook> {page.pageno!= page.totalpages}"> <a> <a> <a href = "$ {path}/course/showall.do?pageno = $ {page.nextpageno}"> <input Type = "ボタン" name = "nextpage" value = "nextpage"/> </a> </c:when> <c:otsing c:otsing> <input type = "disablead =" "/> </> </> </> </> </c:選択> <a href = "$ {path}/course/showall.do?pageno = $ {page.bottompageno}"> <入力タイプ= "ボタン" name = "lastpage" value = "last page"/> </a> </td> </tr </tr>ページ効果:
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。