Parfois, il y a beaucoup de données qui doivent être récupérées en fonction des conditions, et elles doivent être affichées sur la page en paginant. Pour le moment, il n'est pas pratique de paginer la base de données avec des conditions de requête à chaque fois. Vous pouvez paginer dans la liste.
La classe modèle de la page:
Page de classe publique {private Integer CurrentPage; // Page actuelle Int Page PageSize; // Nombre d'enregistrements affichés sur chaque page Private int totalPage; // Nombre total de pages Liste privée <? } 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; }}Couche de contrôle:
@RequestMapping ("fenye.do") String public Fen (page de page, httpServLetRequest request) {try {// la liste de données de la liste des requêtes <sata> showData = loginService.Selectyichall (); // La première page est la première page if (page.getCurrentPage () == null) {page.setCurrentPage (1); } else {page.setCurrentPage (page.getCurrentPage ()); } // Définissez les données par page sur dix pages.SetPageSize (10); // le numéro de démarrage de chaque page page.SetStar ((page.getCurrentPage () - 1) * page.getPageSize ()); // la taille de la liste int count = showData.size (); // définit le nombre total de pages Page.SetTotalPage (Count% 10 == 0? Count / 10: Count / 10 + 1); // Intercepter la liste page.setDatalist (showData.sublist (page.getStar (), count-page.getStar ()> page.getPageSize ()? Page.getStar () + page.getPageSize (): count)); // Définir Scope Request.SetAttribute ("Paging", page); return "add / show.jsp"; } catch (exception e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); retourner "Merrut.jsp"; }}Page JSP:
<script type = "text / javascript" linguisétique = "javascript"> fonction goPage (page) {location.href = "fenye.do?currentPage=" rel = "externe nofollow" + page; } </ script> <div> <table align = "Center" Cellpacing = "1"> <c: foreach items = "$ {paging.datalist}" var = "upl"> <tr> <td align = "Center"> $ {UPL.NAME1} </ td> <td align = "Center"> $ {UPL.NAM align = "Center"> $ {upl.name2} </td> <td align = "Center"> $ {upl.name3} </td> </tr> </c: foreach> </pable> </div> <div style = "Text-Adign: Center; margin-top: 10px; coloride: white;" id = "Venderfen"> <c: if test = "$ {paging.totalpage> 0}"> actuel $ {paging.currentPage} Page / Total $ {paging.totalpage} Page </ c: if> <c: if test = "$ {paging.totalpage> 1}"> <c: Choose> <C: quand test = "$ {paging.currentPage == 2 && paging.totalpage == 2}"> <a onclick = "gopage (1)"> home </a> <a onclick = "goPage ($ {paging.currentPage-1})"> page précédente </a> </c: quand> <c: quand test = "$ {paging.currentPage == 1}"> <a onclick = "gopage ($ {paging.currentPage + 1})"> Page suivante </a> <a onclick = "gopage ($ {paging.totalpage})"> dernière page </a> </c:> <c: quand test = "$ {paging.currentPage == paging.totalpage}"> <a onclick = "gopage (1)"> home </a> <a onclick = "gopage ($ {paging.currentpage-1})"> Page précédente </a> </c: when> <C: sinon> <a onclick = "gopage (1)" onclick = "gopage ($ {paging.currentPage-1})"> page précédente </a> <a onclick = "goPage ($ {paging.currentPage + 1})"> Page suivante </a> <a onClick = "gopage ($ {paging.totalpage})"> dernière page </a> Total $ {paging.total} </div> StringBuilder sb = new StringBuilder (); SB.APPEND ("SELECT DISTINCT (M.Time)"); SB.APPEND ("De Tbl_Monitor m Left Join TBL_VARIABLE V sur m.variable = v.id"); SB.APPEND ("gauche join tbl_variable_group G sur v.variable_group = g.id"); sb.append ("où v.active = true et g.active = true"); //sb.append ("et m.variable dans" + variabletid); SB.APPEND ("et existe (sélectionnez vTemp.id dans tbl_variable vTemp où vTemp.selected = true et vTemp.id = M.Variable)"); SB.APPEND ("et M.Te entre" + Begintime + "et" + Fintime); SB.APPEND ("Ordre par M.Time ASC"); Query Query = em.CreateAnativeQuery (sb.toString ()); // Le nombre de fois qui répondent aux critères de recherche est int total = query.getResultList (). Size (); tableView.SetTotal (total); TableView.SetTotalPage (Total% page.GetPageSize () == 0? Total / Page.GetPageSize (): (Total / Page.GetPageSize ()) + 1); query.setFirStResult (de); query.setMaxResults (Offset); TimeList = query.getResultList ();Ce qui précède est tout le contenu de cet article sur les listes de pagination et l'affichage des données dans le code d'instance de page en Java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!