日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

java分页通用类

發(fā)布時(shí)間:2025/7/25 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java分页通用类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java分頁(yè)通用類

分頁(yè)是個(gè)說(shuō)簡(jiǎn)單就簡(jiǎn)單,說(shuō)復(fù)雜頁(yè)不復(fù)雜的功能。網(wǎng)上各種分頁(yè)類多多少少都不符合自己的需求,還是自己寫(xiě)一個(gè)吧。

?

支持一個(gè)頁(yè)面出現(xiàn)多個(gè)分頁(yè)功能:

Java代碼?

import javax.servlet.http.HttpServletRequest;


/**
?* 分頁(yè)實(shí)用類
?*?
?* @author shuzheng
?* @version 2014/04/21
?*?
?*/
public class Pager {

/**
* 生成簡(jiǎn)單的分頁(yè)頁(yè)面內(nèi)容
*?
* @param total 總記錄數(shù)
* @param size 每頁(yè)記錄數(shù)
* @param step 最多顯示分頁(yè)頁(yè)數(shù)
* @param page 當(dāng)前頁(yè)數(shù)
* @param request 請(qǐng)求request
* @return 分頁(yè)的HTML代碼
*/
public static String getSimplePages(int total, int size, int step, int page, HttpServletRequest request, String paramName) {
// 根據(jù)request獲取當(dāng)前url,包括參數(shù),如果有已存在名稱未paramname的參數(shù),剔除掉,后面會(huì)追加新的參數(shù)
String url = request.getContextPath() + request.getServletPath();
String query = request.getQueryString();
if (query != null) {
String params = "";
String[] querys = query.split("&");
for (int i = 0 ; i < querys.length ; i ++) {
if (querys[i].startsWith(paramName))
continue;
if (params.equals(""))
params += querys[i];
else
params += "&" + querys[i];
}
if (!params.equals(""))
url += "?" + params;
}
// 結(jié)果html
String pages = "";


int pageCount = (int) Math.ceil((double) total / size);// 求總頁(yè)數(shù)
if (pageCount == 1) {
return pages;
}
if (page > pageCount) {
page = pageCount;// 如果分頁(yè)變量大總頁(yè)數(shù),則將分頁(yè)變量設(shè)計(jì)為總頁(yè)數(shù)
}
if (page <= 0) {
page = 1;// 如果分頁(yè)變量小于1,則將分頁(yè)變量設(shè)為1
}

// 顯示上一頁(yè)
if (page > 1) {
if (url.contains("?")) {
pages = pages.concat("<a class=\"prev\" href=\"" + url + "&" + paramName + "=" + (page - 1) + "\">上一頁(yè)</a>\n");
} else {
pages = pages.concat("<a class=\"prev\" href=\"" + url + "?" + paramName + "=" + (page - 1) + "\">上一頁(yè)</a>\n");
}
} else {
pages = pages.concat("<a class=\"prev\" href=\"javascript:;\" style=\"color:#ccc\">上一頁(yè)</a>\n");
}
// 顯示分頁(yè)碼
int listBegin = (page - (int) Math.floor((double) step / 2));//從第幾頁(yè)開(kāi)始顯示分頁(yè)信息
? ? ? ? if (listBegin < 1) {
? ? ? ? ? ? listBegin = 1;
? ? ? ? }
? ? ? ? //顯示第1頁(yè)
if (listBegin >= 2) {
if (url.contains("?")) {
pages = pages.concat("<a href=\"" + url + "&" + paramName + "=1\">1</a> ... \n");
} else {
pages = pages.concat("<a href=\"" + url + "?" + paramName + "=1\">1</a> ... \n");
}
}
? ? ? ? //當(dāng)前頁(yè)數(shù)右側(cè)還有未顯示頁(yè)碼時(shí)
? ? ? ? if (pageCount - page >= page - listBegin) {
for (int i = listBegin; i < (listBegin + step); i++) {
if (i != page) {
if (url.contains("?")) {
pages = pages.concat("<a href=\"" + url + "&" + paramName + "=" + i + "\">" + i + "</a>\n");
} else {
pages = pages.concat("<a href=\"" + url + "?" + paramName + "=" + i + "\">" + i + "</a>\n");
}
} else {
pages = pages.concat("<span class=\"current\">" + i + "</span>\n");
}
}
? ? ? ?//顯示最后1頁(yè)
if (listBegin + step <= pageCount) {
if (url.contains("?")) {
pages = pages.concat(" ... <a href=\"" + url + "&" + paramName + "=" + pageCount + "\">" + pageCount + "</a>\n");
} else {
pages = pages.concat(" ... <a href=\"" + url + "?" + paramName + "=" + pageCount + "\">" + pageCount + "</a>\n");
}
}
? ? ? ? } else { // 顯示最后剩余的幾個(gè)頁(yè)碼
? ? ? ? for (int i = (pageCount-step) + 1; i <= pageCount; i++) {
if (i != page) {
if (url.contains("?")) {
pages = pages.concat("<a href=\"" + url + "&" + paramName + "=" + i + "\">" + i + "</a>\n");
} else {
pages = pages.concat("<a href=\"" + url + "?" + paramName + "=" + i + "\">" + i + "</a>\n");
}
} else {
pages = pages.concat("<span class=\"current\">" + i + "</span>\n");
}
}
? ? ? ? }
// 顯示下一頁(yè)
if (page < pageCount) {
if (url.contains("?")) {
pages = pages.concat("<a class=\"next\" href=\"" + url + "&" + paramName + "=" + (page + 1) + "\">下一頁(yè)</a>\n");
} else {
pages = pages.concat("<a class=\"next\" href=\"" + url + "?" + paramName + "=" + (page + 1) + "\">下一頁(yè)</a>\n");
}
} else {
pages = pages.concat("<a class=\"next\" href=\"javascript:;\" style=\"color:#ccc\">下一頁(yè)</a>\n");
}
return pages;
}
}

使用方法:

?

Java代碼? public String test() {
// 分頁(yè)
int total = 10; //總記錄數(shù)
int size = 1; //每頁(yè)記錄數(shù)
int step = 7; //最多顯示分頁(yè)頁(yè)數(shù)
int p1 = StringUtil.toInt(request.getParameter("p1")); //當(dāng)前頁(yè)數(shù)
int p2 = StringUtil.toInt(request.getParameter("p2")); //當(dāng)前頁(yè)數(shù)
int p3 = StringUtil.toInt(request.getParameter("p3")); //當(dāng)前頁(yè)數(shù)
int p4 = StringUtil.toInt(request.getParameter("p4")); //當(dāng)前頁(yè)數(shù)

return Pager.getSimplePages(total, size, step, p1, request, "p1") + "\n\n<br/><br/>\n\n" +?
Pager.getSimplePages(total, size, step, p2, request, "p2") + "\n\n<br/><br/>\n\n" +?
Pager.getSimplePages(total, size, step, p3, request, "p3") + "\n\n<br/><br/>\n\n" +?
Pager.getSimplePages(total, size, step, p4, request, "p4");
}

結(jié)果如圖所示:

?



?


總結(jié)

以上是生活随笔為你收集整理的java分页通用类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。