때로는 조건에 따라 검색 해야하는 많은 데이터가 있으며 페이징으로 페이지에 표시해야합니다. 현재 매번 쿼리 조건으로 데이터베이스를 Pagination하는 것이 편리하지 않습니다. 목록에서 Pagination을 할 수 있습니다.
페이지의 모델 클래스 :
공개 클래스 페이지 {private integer currentpage; // 현재 페이지 개인 int pagesize; // 각 페이지에 표시되는 레코드 수; // 총 페이지의 총 페이지 개인 목록 <?> datalist; // 각 페이지에 표시되는 데이터 개인 int Star; // 데이터 시작 공개 정수 getCurrentPage () {return currentpage; } public void setCurrentPage (정수 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 {// 쿼리 목록 데이터 목록 <data> showdata = loginservice.selectyichall (); // 첫 번째 페이지는 첫 페이지입니다 if (page.getCurrentPage () == null) {page.setCurrentPage (1); } else {page.setCurrentPage (page.getCurrentPage ()); } // 페이지 당 데이터를 10 페이지로 설정합니다 .SetPagesize (10); // 각 페이지의 시작 번호는 page.setstar ((page.getCurrentPage () -1) * page.getPagesize ()); // 목록의 크기 int count = showdata.size (); // 총 페이지 수를 설정합니다. // 목록 페이지를 가로 릅니다. // scope request.setAttribute ( "페이징", 페이지); "add/show.jsp"를 반환합니다. } catch (예외 e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); "실수 .jsp"를 반환합니다. }}JSP 페이지 :
<script type = "text/javaScript"language = "javaScript"> function gopage (page) {location.href = "fenye.do?currentPage="rel = "external nofollow" +page; . align = "center"> $ {upl.name2} </td> <td align = "center"> $ {upl.name3} </td> </tr> </c : foreach> </table> </div> <div style = "text -align : center; margin-top; 컬러 : 화이트;" id = "venderfen"> <c : if test = "$ {paging.totalpage> 0}"> 현재 $ {paging.currentpage} page/total $ {paging.totalpage} page </c : if> <c : if test = "$ {paging.totalpage> 1}"> <c : <c : when test = "$ {paging.currentpage == 2 && paging.totalpage == 2}"> <a onclick = "gopage (1)"> home </a> <a onclick = "gopage ($ {paging.currentpage-1})"> 이전 페이지 </a> </c : 언제> <c : 언제> <c : test = "$ {paging.currentpage == 1}"> <a onclick = "gopage ($ {paging.currentpage+1})"> 다음 페이지 </a> <a onclick = "gopage ($ {paging.totalpage})"> 마지막 페이지 </a> </c : <c :시기 test = "$ {paging.currentpage == paging.totalpage}"> <a onclick = "gopage (1)"> home </a> <a onclick = "gopage ($ {paging.currentpage-1})"> 이전 페이지 </a> </c : el-) onclicge = "gopage (1)" "gopage onclick = "gopage ($ {paging.currentpage-1})"> 이전 페이지 </a> <a onclick = "gopage ($ {paging.currentpage+1})"> 다음 페이지 </a> <a onclick = "gopage ($ {paging.totalpage})"> 마지막 페이지 </c : </c : </c : </c : </c : </c : </c : </c : </c : </c : </c : </c : </c : </c : </c : </c : </c. 총 $ {paging.total} </div>StringBuilder sb = new StringBuilder (); sb.append ( "Select Select (M.Time)"); sb.append ( "tbl_monitor m에서 왼쪽에서 m.variable = v.id에 tbl_variable v에 가입"); sb.append ( "v.variable_group = g.id"의 "왼쪽 join tbl_variable_group g g. sb.append ( "여기서 v.active = true 및 g.active = true"); //sb.append ( "및" + ariableids의 M.variable); sb.append ( "그리고 존재합니다 (tbl_variable vtemp에서 vtemp.id를 선택하십시오. sb.append ( "및" + begintime + "와" + endtime 사이의 M.Time); sb.append ( "M.Time ASC의 주문"); query query = em.createnativeQuery (sb.toString ()); // 검색 기준을 충족하는 횟수는 int total = query.getResultList (). size ()입니다. TableView.SetTotal (총); TableView.SetTotalPage (Total % page.getPagesize () == 0? Total / Page.GetPagesize () : (Total / Page.GetPagesize ()) + 1); query.setfirstresult (from); query.setMaxResults (오프셋); timelist = query.getResultList ();
위의 것은 페이징 목록 및 Java의 페이지 인스턴스 코드에 데이터 표시에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!