关于Java后台分页
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于Java后台分页
原理,前台传⼊每页显⽰条数,及当前的页码后台有条件查询显⽰到页⾯上
页⾯上显⽰样式为
本例⼦:是点击查询按钮获得数据进⾏分页的情况(如页⾯已加载就获得数据只需初始化时就调⽤⽅法即可)
⾸先是前台
jsp 页⾯⽤于显⽰分页的结构
<ul class="page" maxshowpageitem="6" pagelistcount="10" id="page"></ul>
<div name="findBtn" type="find" caption="查询" onclick="queryGXLXMCData()" class="btn btn-default">查询按钮</div> jsp 页⾯需引⼊
<link href="page.css" type="text/css" rel="stylesheet" />
<script language='javascript' type='text/javascript' src="page.js"></script>
js:
/**
* 点击查询按钮查询列表数据
*/
function queryGXLXMCData2(pageIndex,callSucFlag){
var sub = new WingsSubmit();
//设置分页数据
if(!pageIndex) {
pageIndex = 1;
}
sub.pushData("pageIndex", pageIndex);//当前是第⼏页
sub.pushData("pageNumber", 10);//每页10条数据
sub.setCtrl('GxfxCtrl_queryGxmcList');
if(callSucFlag) {
sub.setFunction("onSuccess", "loadQueryDataSuccess();");
}
sub.submit();
}
function queryGXLXMCData(pageIndex){
var sub = new WingsSubmit();
sub.pushData("gxmcs", ywcjcode);
//设置分页数据
if(!pageIndex) {
pageIndex = 1;
}
sub.pushData("pageIndex", pageIndex);//当前是第⼏页
sub.pushData("pageNumber", 10);//每页10条数据
sub.setCtrl('GxfxCtrl_queryGxmcList');
sub.setFunction("onSuccess", "loadQueryDataSuccess();");
sub.submit();
}
function loadQueryDataSuccess(res) {
$('#cxgxGrid').show();
var dataNumber = res.getAttr("pageCount");
$("#page").show();
setPage(dataNumber);
}
//设置分页
function setPage(pageCount) {
pageNumber = $("#page").attr("pagelistcount");
$("#page").initPage(pageCount,1,function(p) {
queryGXLXMCData2(p);
});
}
ctrl:
//分页查询数据的⼀共的条数------------------------------------------------------
final Map<String, Object> pageMap = (Map<String, Object>) SwordServiceUtils.callService("SWZJ.DSJYPT.GXYT005.GETDATAMAXNUMBER", map);
final int dataNumInt = Integer.parseInt(pageMap.get("maxnum")+"");
//分页查询当前请求的数据------------------------------------------------------
final List<Map<String, Object>> cxgxAllList = (List<Map<String, Object>>) SwordServiceUtils .callService("SWZJ.DSJYPT.GXYT005.QUERGXCXALLDATA", map); res.addTable("cxgxGrid", cxgxAllList);
res.addAttr("pageCount", dataNumInt);
return res;
后台:
DAO:
//查询⼀共多少条数据⽤于分页 sql: "select COUNT(*) maxNum from mx_gxyt_fxdpzb b,mx_gxyt_gxlxdm m where b.gxlx_dm=m.gxlx_dm and b.ywcj_dm = ?"
public Map<String, Object> getAllDataCount(Map<String, Object> map) throws SwordBaseCheckedException {
final SQLParam param = new SQLParam();
final String gxmcs = (String) map.get("gxmcs");
if (CastUtils.isNull(gxmcs)) {
param.addParam(gxmcs);
} else {
param.addParam(gxmcs);
}
final Map<String, Object> listResulMap = SwordPersistenceUtils.getPersistenceService().queryMapByKey("hdxt_dsjypt_gxyt000031_glfxsballgxcount", param); if (CastUtils.isNull(listResulMap)) {
final Map<String, Object> resultNum = new HashMap<String, Object>();
resultNum.put("maxnum", 0);
return resultNum;
}
return listResulMap;
}
//⽤于查询每页数据 sql:select m.gxlx_dm,m.gxlxmc,c.gxlxmc as glgxlx ,b.fxd,c.gxlx_dm as sjgxdm from mx_gxyt_gxlxdm m left join mx_gxyt_gxlxdm c
on m.sjgxlx_dm = c.gxlx_dm left join mx_gxyt_fxdpzb b on b.gxlx_dm=m.gxlx_dm where b.ywcj_dm=? and b.fxd>0 LIMIT ?,?
public List<Map<String, Object>> queryCxgxAllList(Map<String, Object> map) throws SwordBaseCheckedException {
final SQLParam param = new SQLParam();
final String gxmcs = (String) map.get("gxmcs");
if (CastUtils.isNull(gxmcs)) {
param.addParam(gxmcs);
} else {
param.addParam(gxmcs);
}
final String pageIndex = map.get("pageIndex") + "";
final String pageNumber = map.get("pageNum") + "";
param.addParam((Integer.parseInt(pageIndex) - 1) * Integer.parseInt(pageNumber));
param.addParam(Integer.parseInt(pageIndex) * Integer.parseInt(pageNumber));
List<Map<String, Object>> result = this.getPersistenceService().queryMapListByKey("hdxt_dsjypt_gxyt000032_glfxsballgxpage", param);
result = getLastListMap(result, Integer.parseInt(pageNumber));
return result;
}
//获取list的最后10条数据
private List<Map<String, Object>> getLastListMap(List<Map<String, Object>> list, int sizeNum) {
final int curSize = list.size();
if (curSize < sizeNum) {
return list;
}
final List<Map<String, Object>> reList = new ArrayList<Map<String, Object>>();
for (int i = 0; i < sizeNum; i++) {
reList.add(list.get(curSize - sizeNum + i));
}
return reList;
}
page.css
.zzsc{ margin:0 auto; width:580px; height:80px; border:1px solid #F00}
.page{
list-style: none;
}
.page>li{
float: left;
padding: 5px 10px;
cursor: pointer;
}
.page .pageItem{
border: solid thin #DDDDDD;
margin: 5px;
}
.page .pageItemActive{
border: solid thin #0099FF;
margin: 5px;
background-color: #0099FF;
color:white;
}
.page .pageItem:hover{
border: solid thin #0099FF;
background-color: #0099FF;
color:white;
}
.page .pageItemDisable{
border: solid thin #DDDDDD;
margin: 5px;
background-color: #DDDDDD;
}
page.js
/**
* Created by zxm on 2017/3/31.
*/
$.fn.extend({
"initPage":function(listCount,currentPage,fun){
var maxshowpageitem = $(this).attr("maxshowpageitem");
if(maxshowpageitem!=null&&maxshowpageitem>0&&maxshowpageitem!=""){
page.maxshowpageitem = maxshowpageitem;
}
var pagelistcount = $(this).attr("pagelistcount");
if(pagelistcount!=null&&pagelistcount>0&&pagelistcount!=""){
page.pagelistcount = pagelistcount;
}
var pageId = $(this).attr("id");
page.pageId=pageId;
if(listCount<0){
listCount = 0;
}
if(currentPage<=0){
currentPage=1;
}
page.setPageListCount(listCount,currentPage,fun);
}
});
var page = {
"pageId":"",
"maxshowpageitem":5,//最多显⽰的页码个数
"pagelistcount":10,//每⼀页显⽰的内容条数
/**
* 初始化分页界⾯
* @param listCount 列表总量
*/
"initWithUl":function(listCount,currentPage){
var pageCount = 1;
if(listCount>=0){
var pageCount = listCount%page.pagelistcount>0?parseInt(listCount/page.pagelistcount)+1:parseInt(listCount/page.pagelistcount); }
var appendStr = page.getPageListModel(pageCount,currentPage);
$("#"+page.pageId).html(appendStr);
},
/**
* 设置列表总量和当前页码
* @param listCount 列表总量
* @param currentPage 当前页码
*/
"setPageListCount":function(listCount,currentPage,fun){
listCount = parseInt(listCount);
currentPage = parseInt(currentPage);
page.initWithUl(listCount,currentPage);
page.initPageEvent(listCount,fun);
fun(currentPage);
},
"initPageEvent":function(listCount,fun){
$("#"+page.pageId +">li[class='pageItem']").on("click",function(){
page.setPageListCount(listCount,$(this).attr("page-data"),fun);
});
},
"getPageListModel":function(pageCount,currentPage){
var prePage = currentPage-1;
var nextPage = currentPage+1;
var prePageClass ="pageItem";
var nextPageClass = "pageItem";
if(prePage<=0){
prePageClass="pageItemDisable";
}
if(nextPage>pageCount){
nextPageClass="pageItemDisable";
}
var appendStr ="";
appendStr+="<li class='"+prePageClass+"' page-data='1' page-rel='firstpage'>⾸页</li>";
appendStr+="<li class='"+prePageClass+"' page-data='"+prePage+"' page-rel='prepage'><上⼀页</li>";
var miniPageNumber = 1;
if(currentPage-parseInt(page.maxshowpageitem/2)>0&¤tPage+parseInt(page.maxshowpageitem/2)<=pageCount){
miniPageNumber = currentPage-parseInt(page.maxshowpageitem/2);
}else if(currentPage-parseInt(page.maxshowpageitem/2)>0&¤tPage+parseInt(page.maxshowpageitem/2)>pageCount){ miniPageNumber = pageCount-page.maxshowpageitem+1;
if(miniPageNumber<=0){
miniPageNumber=1;
}
}
var showPageNum = parseInt(page.maxshowpageitem);
if(pageCount<showPageNum){
showPageNum = pageCount
}
for(var i=0;i<showPageNum;i++){
var pageNumber = miniPageNumber++;
var itemPageClass = "pageItem";
if(pageNumber==currentPage){
itemPageClass = "pageItemActive";
}
appendStr+="<li class='"+itemPageClass+"' page-data='"+pageNumber+"' page-rel='itempage'>"+pageNumber+"</li>";
}
appendStr+="<li class='"+nextPageClass+"' page-data='"+nextPage+"' page-rel='nextpage'>下⼀页></li>";
//appendStr+="<li class='"+nextPageClass+"' page-data='"+pageCount+"' page-rel='lastpage'>尾页</li>";
return appendStr;
}
}。