条件に基づいて取得する必要があるデータがたくさんある場合があり、ページでページに表示する必要があります。現時点では、毎回クエリ条件を使用してデータベースをページングすることは便利ではありません。リストにはページを付けることができます。
ページのモデルクラス:
パブリッククラスページ{private integer currentPage; //現在のページprivate int pagesize; //各ページに表示されるレコード数プライベートint totalpage; } public void setCurrentPage(integer currentPage){this.currentPage = currentPage; } public int getPagesize(){return pagesize; } public void setPagesize(int pagesize){this.pagesize = pagesize; } public int getTotalPage(){return totalpage; } public void settotalpage(int totalpage){this.totalpage = totalpage; } public list <?> getDatalist(){return datalist; } public void setdatalist(list <?> datalist){this.datalist = datalist; } public int getStar(){return star; } public void setStar(int star){this.star = star; }}コントロールレイヤー:
@RequestMapping( "fenye.do")public string fen(ページ、httpservletrequest request){try {// query list data list <data> showdata = loginservice.selectyichall(); //最初のページは最初のページです。 } else {page.setCurrentPage(page.getCurrentPage()); } //ページあたりのデータを10ページに設定します。SetPagesize(10); //各ページの開始番号page.setstar((page.getCurrentPage() - 1) * page.getPagesize()); //リストのサイズint count = showdata.size(); //ページの合計数ページを設定します。SettotalPage(count%10 == 0?count / 10:count / 10 + 1); //リストページをインターセプトします。SetDatalist(showdata.sublist(page.getStar()、count-page.getStar()> page.getPagesize()?page.getStar()+page.getPagesize():count)); // scope request.setattribute( "Paging"、page)を設定します。 "add/show.jsp"を返します。 } catch(例外e){// todo auto-enerated catch block e.printstacktrace(); "MISS.jsp"を返します。 }}JSPページ:
<script type = "text/javascript"言語= "javascript"> function gopage(page){location.href = "fenye.do?currentpage=" rel = "external nofollow" +page; } </script> <div> <table align = "center" cellpacing = "1"> <c:foreach items = "$ {paging.datalist}" var = "upl"> <tr> <td align = "> $ {upl.name1} </td> <td <td"> $ {upl.name2} </td </td </td </td </td </td </td </td </td </td </td </td </td </td </td </td </td </td </td < align = "center"> $ {upl.name2} </td> <td align = "center"> $ {upl.name3} </td> </tr> </c:foreach> </table> </div> <div style = "text-align:center; margin-top:10px; coler:white;" id = "venderfen"> <c:if test = "$ {paging.totalpage> 0}"> current $ {paging.currentPage}ページ/合計$ {paging.totalpage}ページ</c:if> <c:if test = "$ {paging.totalpage> 1}" test = "$ {paging.currentpage == 2 && paging.totalpage == 2}"> <a onclick = "gopage(1)"> home </a> <a onclick = "gopage($ {paging.currentpage-1})">前のページ</a> test = "$ {paging.currentpage == 1}"> <a onclick = "gopage($ {paging.currentpage+1})">次のページ</a> <onclick = "gopage($ {paging.totalpage})"> last </a> < test = "$ {paging.currentpage == paging.totalpage}"> <a onclick = "gopage(1)"> home </a> <a onclick = "gopage($ {paging.currentpage-1})">前のページ</a> </c: onclick = "gopage($ {paging.currentpage-1})">前のページ</a> <onclick = "gopage($ {paging.currentpage+1})">次のページ</a> <a onclick = "gopage($ {paging.totalpage})合計$ {paging.total} </div>stringbuilder sb = new StringBuilder(); sb.append( "select distinct(m.time)"); sb.append( "tbl_monitor mの左からtbl_variable v on m.variable = v.id"); sb.append( "left join tbl_variable_group g on v.variable_group = g.id"); sb.append( "where v.active = true and g.active = true"); //SB.Append( "および" + variaveIds in "in"およびM.Variable); sb.append( "and estistes(vtemp.id from tbl_variable vtemp)where vtemp.selected = true and vtemp.id = m.variable)"); sb.append( "およびm.time between" + begintime + "および" + endtime); Sb.Append( "M.Time ASCによる注文");クエリquery = em.createnativeQuery(sb.tostring()); //検索条件を満たす時間数はint total = query.getResultList()。size(); tableView.settotal(合計); tableView.settotalPage(合計%page.getPagesize()== 0?total / page.getPagesize():( total / page.getPagesize()) + 1); query.setfirstreSult(from); query.setMaxResults(offset); TimeList = query.getResultList();
上記は、ページングリストとJavaのページインスタンスコードへのデータの表示に関するこの記事のすべての内容です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!