您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關利用Java如何實現前臺與后臺頁面分頁,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
先上圖吧,大致如圖,也就提供個思路(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>數據交易貓</title> <script type="text/javascript"> //1分頁下,動態添加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(){ }) //根據頁數查詢數據列表 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("失敗"); }, }); } //根據下拉查詢數據列表 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("失敗"); }, }); } //根據下拉選擇排序方式 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> <!-- 內容--> <div class="well"> <!-- 標題--> <div class="box"><h4><span class="glyphicon glyphicon-list" ></span>需求列表</h4></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> <!-- 內容--> <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"> <h5 class="ellipsis"><a href="${pageContext.request.contextPath}/bid/bidAction_queryById?id=${id}" rel="external nofollow" onclick="reward()">${title}</a></h5> </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"> <!-- 判斷當前頁是否位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> <!-- 判斷當前頁和總頁數,小于則顯示下一頁, --> <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">跳轉到第 <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"); //當前頁碼條件 session.put("sessionReqSortValue","publishDatetime"); }else{ hql=hql+"order by r."+sortValue+" desc"; ActionContext.getContext().put("sortValue", sortValue); //當前頁碼條件 session.put("sessionReqSortValue",sortValue); } long icount=requirementService.countAllRe();//總記錄數 long allPage;//總頁數 //判斷是否能整除,能則直接,不能則+1; if((icount%pageSize)==0){ allPage=icount/pageSize; } else{ allPage=(icount/pageSize)+1; } System.out.println("總記錄:"+icount+";總頁數:"+allPage+";當前頁碼:"+pageNo); List<Requirement> requiList=requirementService.queryByPage(hql, pageNo, pageSize); ActionContext.getContext().put("requiList", requiList);//需求列表 ActionContext.getContext().put("icount", icount);//總記錄數 ActionContext.getContext().put("allPage", allPage);//總頁數 ActionContext.getContext().put("currentPage", pageNo); //當前頁碼 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
//這里可能會報錯,就是直接查詢數據列表(使用了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(); }
看完上述內容,你們對利用Java如何實現前臺與后臺頁面分頁有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。