Java實現(xiàn)分頁的前臺頁面和后臺代碼
更新時間:2017年03月17日 08:20:39 作者:dKnightL
這篇文章主要為大家詳細介紹了Java實現(xiàn)分頁的前臺頁面和后臺代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Java分頁展示的具體代碼,供大家參考,具體內(nèi)容如下
先上圖吧,大致如圖,也就提供個思路(ps:使用了SSH框架)
前臺JSP頁面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>數(shù)據(jù)交易貓</title> <script type="text/javascript"> //1分頁下,動態(tài)添加disable給分頁按鈕 /* $(function(){ var myPageId="#"+$("#hidCurrentPage").val(); var myPageAId="#"+$("#hidCurrentPage").val()+" a"; $(myPageAId).addClass('main-bgcolor'); $(myPageAId).attr('href','javascript:void(0)') $(myPageId).addClass('disabled'); $(myPageId).addClass('disabledControl'); }) */ // $(function(){ }) //根據(jù)頁數(shù)查詢數(shù)據(jù)列表 function queryRequirListByPage(i) { var pageNo=i; var sortValue=$('#hidSortValue').val(); $.ajax({ url:'${pageContext.request.contextPath}/bid/reAction_queryRequirListByPage.action', type:'POST', data:{ sortValue:sortValue, pageNo:pageNo }, success:function(datas){ $('#requireContentDiv').html(datas); }, error:function(){ alert("失敗"); }, }); } //根據(jù)下拉查詢數(shù)據(jù)列表 function selectPage(obj){ var pageNo=obj.options[obj.selectedIndex].value; var sortValue=$('#hidSortValue').val(); $.ajax({ url:'${pageContext.request.contextPath}/bid/reAction_queryRequirListByPage.action', type:'POST', data:{ sortValue:sortValue, pageNo:pageNo }, success:function(datas){ $('#requireContentDiv').html(datas); }, error:function(){ alert("失敗"); }, }); } //根據(jù)下拉選擇排序方式 function selectSort(obj){ var sortValue = obj.options[obj.selectedIndex].value; var pageNo =1; $.ajax({ url:'${pageContext.request.contextPath}/bid/reAction_queryRequirListByPage.action', type:'POST', data:{sortValue:sortValue, pageNo:pageNo }, success:function(datas){ $('#requireContentDiv').html(datas); }, error:function(){ alert("失敗"); }, }); } $(document).ready(function(){ var backSortValue=$('#backSortValue').val(); console.log("backSortValue"+backSortValue) $("#category option").each(function(){ var thisId='#'+this.id; var thisValue=this.value; if(backSortValue==thisValue){ $(thisId).attr('selected','selected'); } }); }) </script> </head> <body> <!-- 內(nèi)容--> <div class="well"> <!-- 標題--> <div class="box"><h3><span class="glyphicon glyphicon-list" ></span>需求列表</h3></div> <!-- 篩選條件--> <div class="box"> <div class="row"> <div class="col-xs-12"> <span>篩選:按</span> <select id="category" name="category" onchange="selectSort(this)"> <option id="categoryTime" value="publishDatetime">最新</option> <option id="categoryPrice" value="price">價格降序</option> <input id="backSortValue" type="hidden" value="${sortValue}"> </select> <hr class="mrgZero mrgTopSma"/> </div> </div> </div> <!-- 內(nèi)容--> <input type="hidden" name="hidCurrentPage2" id="hidCurrentPage" value="${currentPage}"> <input type="hidden" id="hidAllPage" value="${allPage}"> <input type="hidden" id="hidSortValue" value="${sortValue}"> <s:iterator value="#requiList"> <div class="data-down-box"> <div class="row"> <div class="col-xs-12"> <h4 class="ellipsis"><a href="${pageContext.request.contextPath}/bid/bidAction_queryById?id=${id}" rel="external nofollow" onclick="reward()">${title}</a></h4> </div> </div> <div class="row mrgTopSma"> <div class="col-xs-12 "> <p class="data-provider padLeftBig sec-color ellipsis">懸賞積分:<span>${price}</span></p> <p class="data-intro padLeftBig ellipsis sec-color">需求描述:<span>${requirementDescription}</span></p> </div> </div> <hr/> </div> </s:iterator> <!-- 分頁 --> <div id="rePagerDiv" class="rePagerDiv box"> <nav> <ul class="pager"> <!-- 判斷當(dāng)前頁是否位1,如果不為1則顯示上一頁, --> <s:if test="1 == #currentPage"> </s:if> <s:else> <li> <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" aria-label="Previous" onclick="queryRequirListByPage(${currentPage-1})"> <span aria-hidden="true">«</span> </a> </li> </s:else> <!-- 首頁 --> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="queryRequirListByPage(1)">首頁</a></li> <li> <span><span class="main-color">${currentPage}</span>/ ${allPage}頁</span> </li> <!-- 尾頁 --> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="queryRequirListByPage(${allPage})">尾頁</a></li> <!-- 判斷當(dāng)前頁和總頁數(shù),小于則顯示下一頁, --> <s:if test="#currentPage < #allPage"> <li> <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" aria-label="Next" onclick="queryRequirListByPage(${currentPage+1})"> <span aria-hidden="true">»</span> </a> </li> </s:if> <li> <span class="skipPageSpan">跳轉(zhuǎn)到第 <select onchange="selectPage(this)"> <s:iterator var="lst" begin="1" end="#allPage" step="1"> <s:if test="%{#lst == #currentPage}"> <option selected="selected" value="<s:property/>" ><s:property/></option> </s:if> <s:else> <option value="<s:property/>" ><s:property/></option> </s:else> </s:iterator> </select> 頁 </span> </li> </ul> </nav> </div> </div> <hr/> </body> </html>
action
//查詢需求列表 public String queryRequirListByPage(){ int pageSize=5;//每頁記錄 String hql="select r from Requirement r where r.reStatus !=2 "; if(sortValue == null || sortValue.length() <= 0){ hql=hql+"order by r.publishDatetime desc"; ActionContext.getContext().put("sortValue", "publishDatetime"); //當(dāng)前頁碼條件 session.put("sessionReqSortValue","publishDatetime"); }else{ hql=hql+"order by r."+sortValue+" desc"; ActionContext.getContext().put("sortValue", sortValue); //當(dāng)前頁碼條件 session.put("sessionReqSortValue",sortValue); } long icount=requirementService.countAllRe();//總記錄數(shù) long allPage;//總頁數(shù) //判斷是否能整除,能則直接,不能則+1; if((icount%pageSize)==0){ allPage=icount/pageSize; } else{ allPage=(icount/pageSize)+1; } System.out.println("總記錄:"+icount+";總頁數(shù):"+allPage+";當(dāng)前頁碼:"+pageNo); List<Requirement> requiList=requirementService.queryByPage(hql, pageNo, pageSize); ActionContext.getContext().put("requiList", requiList);//需求列表 ActionContext.getContext().put("icount", icount);//總記錄數(shù) ActionContext.getContext().put("allPage", allPage);//總頁數(shù) ActionContext.getContext().put("currentPage", pageNo); //當(dāng)前頁碼 session.put("sessionCurrentPage", pageNo); return "requireContent"; }
service
public long countAllRe() { return requirementDao.countAllRe(); } public List<T> queryByPage(String hql, int pageNo, int pageSize) { return requirementDao.queryByPage(hql, pageNo, pageSize); }
dao
//這里可能會報錯,就是直接查詢數(shù)據(jù)列表(使用了SSH) public long countAll() { List<?> l = getSession().createQuery("select count(*) from " + clazz.getSimpleName()).list(); if (l != null && l.size() == 1 ) { return (Long)l.get(0); } return 0; } public List<T> queryByPage(String hql, int pageNo, int pageSize) { return getSession() .createQuery(hql) .setFirstResult((pageNo - 1) * pageSize) .setMaxResults(pageSize) .list(); }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis?Plus實現(xiàn)中文排序的兩種有效方法
在MyBatis?Plus項目開發(fā)中,針對中文數(shù)據(jù)的排序需求是一個常見的挑戰(zhàn),尤其是在需要按照拼音或特定語言邏輯排序時,本文整合了兩種有效的方法,旨在幫助開發(fā)者克服MyBatis?Plus在處理中文排序時遇到的障礙,需要的朋友可以參考下2024-08-08JVM性能調(diào)優(yōu)實現(xiàn)原理及配置
這篇文章主要介紹了JVM性能調(diào)優(yōu)實現(xiàn)原理及配置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-12-12springboot application.yml使用@@pom文件配置問題
這篇文章主要介紹了springboot application.yml使用@@pom文件配置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07SpringBoot整合Redis使用RedisTemplate和StringRedisTemplate
Spring?Boot?Data(數(shù)據(jù))?Redis?中提供了RedisTemplate和StringRedisTemplate,其中StringRedisTemplate是RedisTemplate的子類,兩個方法基本一致。本文介紹了SpringBoot整合Redis使用RedisTemplate和StringRedisTemplate的方法,需要的可以參考一下2022-12-12