真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java分頁(yè)代碼算法 java分頁(yè)顯示

關(guān)于Java的分頁(yè)算法,急!

使用分頁(yè)類,直接調(diào)用就可以,代碼如下:

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、武義網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為武義等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

package com.godwin.news.util;

import java.io.UnsupportedEncodingException;

import java.net.URLDecoder;

import java.util.ArrayList;

/**

* 分頁(yè)類,用于封閉分頁(yè)顯示信息

*

* @author javabs

*

*/

public class Pager {

// 當(dāng)前頁(yè)

private int currentPage;

// 總頁(yè)數(shù)

private int totalPage;

// 總記錄數(shù)

private int totalRecord;

// 每頁(yè)條數(shù)

private int pageSize;

// 是否有下一頁(yè)

private int hasNext;

private ArrayList keys;

private ArrayList values;

// 查詢串

private String queryString;

// 首頁(yè)

private String firstLink;

// 上一頁(yè)

private String previousLink;

// 下一頁(yè)

private String nextLink;

// 尾頁(yè)

private String lastLink;

// 鏈接

private String forScriptLink;

public Pager(int pageSize, String queryString) {

keys = new ArrayList();

values = new ArrayList();

setQueryString(queryString);

setPageSize(pageSize);

}

public String getForScriptLink() {

if (keys.contains("toPage"))

removeKey("toPage");

String tmp = getQueryString();

if (tmp.length() == 0)

return "?";

else

return "?" + tmp + "";

}

public int getCurrentPage() {

return currentPage;

}

public void setCurrentPage(String toPage) {

int tmpage = 1;

try {

tmpage = Integer.parseInt(toPage);

} catch (NumberFormatException e) {

tmpage = 1;

}

if (tmpage 1)

tmpage = 1;

else if (tmpage getTotalPage())

tmpage = getTotalPage();

currentPage = tmpage;

}

public String getFirstLink() {

return getQueryStr(1);

}

public int getHasNext() {

int i = 1;

if (getCurrentPage() = getTotalPage())

i = 0;

return i;

}

public String getLastLink() {

return getQueryStr(getTotalPage());

}

public String getNextLink() {

return getQueryStr(currentPage == totalPage ? currentPage : (currentPage + 1));

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public String getPreviousLink() {

return getQueryStr(currentPage == 1 ? currentPage : currentPage - 1);

}

public void setPreviousLink(String previousLink) {

this.previousLink = previousLink;

}

public String getQueryString() {

StringBuffer sb = new StringBuffer();

for (int i = 0; i keys.size(); i++) {

String key = (String) keys.get(i);

String value = (String) values.get(i);

sb.append("");

sb.append(key);

sb.append("=");

sb.append(value);

}

return sb.delete(0, 1).toString();

}

public void setQueryString(String queryString) {

if (queryString != null) {

String s[] = queryString.split("");

for (int i = 0; i s.length; i++) {

String s1[] = s[i].split("=");

if (s1.length == 2) {

keys.add(s1[0]);

values.add(s1[1]);

} else {

keys.add(s1[0]);

values.add("");

}

}

}

}

public int getTotalPage() {

return totalPage;

}

public void setTotalPage() {

if (totalRecord % pageSize == 0) {

totalPage = totalRecord / pageSize;

totalPage = totalPage == 0 ? 1 : totalPage;

}

else

totalPage = totalRecord / pageSize + 1;

}

public int getTotalRecord() {

return totalRecord;

}

public void setTotalRecord(int totalRecord) {

this.totalRecord = totalRecord;

setTotalPage();

}

public String[] getQueryParameterValues(String key) {

return getQueryParameterValues(key, "UTF-8");

}

public String[] getQueryParameterValues(String key, String decode) {

ArrayList ret = new ArrayList();

for (int i = 0; i keys.size(); i++)

if (((String) keys.get(i)).equals(key))

try {

ret.add(URLDecoder.decode((String) values.get(i), decode));

} catch (UnsupportedEncodingException e) {

ret.add((String) values.get(i));

}

if (ret.size() == 0)

return null;

String strArr[] = new String[ret.size()];

for (int i = 0; i ret.size(); i++)

strArr[i] = (String) ret.get(i);

return strArr;

}

public String getQueryParameter(String key) {

return getQueryParameter(key, "UTF-8");

}

public String getQueryParameter(String key, String decode) {

String value = "";

if (key != "toPage") {

try {

value = URLDecoder.decode(getValue(key), decode);

} catch (UnsupportedEncodingException e) {

value = getValue(key);

}

} else {

int tmpage = 1;

try {

value = getValue(key);

tmpage = Integer.parseInt(value);

} catch (NumberFormatException e) {

tmpage = 1;

} catch (NullPointerException e1) {

tmpage = 1;

}

if (tmpage 1)

tmpage = 1;

else if (tmpage getTotalPage())

tmpage = getTotalPage();

value = (new StringBuffer(String.valueOf(tmpage))).toString();

}

return value;

}

public void setQueryParameter(String key, String value) {

if (key.equals("toPage"))

removeKey(key);

keys.add(key);

values.add(value);

}

public String getQueryStr(int toPage) {

setQueryParameter("toPage", (new StringBuffer(String.valueOf(toPage))).toString());

return "?" + getQueryString();

}

private String getValue(String key) {

String ret = "";

for (int i = 0; i keys.size(); i++) {

if (!((String) keys.get(i)).equals(key))

continue;

ret = (String) values.get(i);

break;

}

return ret;

}

private void removeKey(String key) {

for (int i = 0; i keys.size(); i++) {

if (!((String) keys.get(i)).equals(key))

continue;

keys.remove(i);

values.remove(i);

break;

}

}

public static void main(String args[]) {

String str = "a=中文aab=2c=3c=4c=5";

Pager page = new Pager(2, str);

page.setTotalRecord(10);

page.setCurrentPage("1");

System.out.println(page.getFirstLink());

System.out.println(page.getPreviousLink());

System.out.println(page.getNextLink());

System.out.println(page.getLastLink());

String s = page.getQueryParameter("a");

System.out.println("s: " + s);

}

}

怎樣用java實(shí)現(xiàn)分頁(yè)顯示

實(shí)現(xiàn)原理很簡(jiǎn)單,就是建立一個(gè)Page類,里面放當(dāng)前訪問的頁(yè)數(shù)和每一頁(yè)顯示的記錄行數(shù)。然后通過分頁(yè)計(jì)算就可以得出下列數(shù)據(jù)。

總頁(yè)數(shù) = 總記錄數(shù)/每頁(yè)大小,如果0!=總記錄數(shù)%每頁(yè)大小,那么總頁(yè)數(shù)再+1。

當(dāng)前頁(yè)數(shù)。

表記錄的起始位置=(當(dāng)前頁(yè)數(shù)-1)*每頁(yè)大小。

總記錄數(shù)(select count(*) from [表名] [where [條件]]。從數(shù)據(jù)庫(kù)中查詢得到)

每頁(yè)大小,可以固定,也可以從頁(yè)面?zhèn)鬟^來有了這幾個(gè)參數(shù)之后,就用sql語(yǔ)句查出對(duì)應(yīng)的記錄就可以了。

Java是一種可以撰寫跨平臺(tái)應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。

Java?技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。

它最初被命名為Oak,目標(biāo)設(shè)定在家用電器等小型系統(tǒng)的編程語(yǔ)言,來解決諸如電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通訊問題。

由于這些智能化家電的市場(chǎng)需求沒有預(yù)期的高,Sun放棄了該項(xiàng)計(jì)劃。就在Oak幾近失敗之時(shí),隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計(jì)算機(jī)網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了Oak,以“Java”的名稱正式發(fā)布。

Java的主要工作是通過編程語(yǔ)言來制作互聯(lián)網(wǎng)頁(yè)面、制作動(dòng)態(tài)效果以及網(wǎng)站等技術(shù)。

java中如何實(shí)現(xiàn)百度中的分頁(yè)

/**

*?分頁(yè)代碼

*?

*?@author?Star

*?@version?1.0?2008/07/08

*/

public?class?CutPage?implements?Serializable{

private?static?Log?log?=?LogFactory.getLog(CutPage.class);

private?int?curPageNo?=?0;?//?當(dāng)前頁(yè)數(shù),從0開始

private?int?size?=?0;?//?所有數(shù)據(jù)條數(shù)

private?String?url;?//?頁(yè)面跳轉(zhuǎn)的路徑

private?List?showList;?//?當(dāng)前頁(yè)面需要顯示的數(shù)據(jù)列表

private?int?pageSize?=?20;//?每頁(yè)顯示的數(shù)據(jù)條數(shù)

private?int?groupSize?=?1;//?多少頁(yè)為一組

private?String?pageNavigation;//?導(dǎo)航條

/**

?*?每次通過sql語(yǔ)句從數(shù)據(jù)庫(kù)里面分組取出需要顯示的數(shù)據(jù)

?*?

?*?@param?request

?*????????????javax.servlet.http.HttpServletRequest對(duì)象

?*?@param?sql

?*????????????String?查詢數(shù)據(jù)庫(kù)的sql語(yǔ)句

?*?@param?pageSize

?*????????????int?每頁(yè)顯示的條數(shù)

?*?@param?groupSize

?*????????????int?分成多少組

?*?@param?url

?*????????????String?頁(yè)面跳轉(zhuǎn)的路徑,若沒有特殊的參數(shù)傳遞,可以傳入null或"",

?*????????????如是在aciton里面調(diào)用,并且action是繼承自DispatherAction的話最好傳入完整的路徑

?*/

public?void?init(HttpServletRequest?request,?String?sql,?int?pageSize,

int?groupSize,?int?pageNo,?String?url)?{

//?上一頁(yè)、下一頁(yè)跳轉(zhuǎn)路徑

if?(url?!=?null)?{

this.url?=?url;

}?else?{

this.url?=?request.getRequestURL()?+?"";

}

if?(pageSize??0)

this.pageSize?=?pageSize;//?每頁(yè)多少條記錄

if?(groupSize??0)

this.groupSize?=?groupSize;

//?當(dāng)前第幾頁(yè)

if?(pageNo??0)?{

this.curPageNo?=?0;

}?else?{

this.curPageNo?=?pageNo;

}

int?curGroup?=?this.curPageNo?/?this.groupSize?+?1;

//?是否是新的一組數(shù)據(jù),如果是則到數(shù)據(jù)庫(kù)取數(shù)據(jù)

this.size?=?parseInt(request.getSession().getAttribute("page_all_size")

+?"",?0);

if?(this.curPageNo?%?this.groupSize?==?0

||?(request.getSession().getAttribute("cur_group")?!=?null??parseInt(

""?+?request.getSession().getAttribute("cur_group"),?1)?!=?curGroup)

||?this.size?==?0?||?request.getParameter("reload")?!=?null)?{

request.getSession().setAttribute("cur_group",?curGroup);

if?(pageNo??0

?request.getSession().getAttribute("page_sql")?!=?null)?{

sql?=?request.getSession().getAttribute("page_sql")?+?"";

}?else?{

request.getSession().setAttribute("page_sql",?sql);

}

this.size?=?getTotalCount(sql);

List?list?=?getPageData(sql,?(this.curPageNo?/?this.groupSize)

*?this.pageSize?*?this.groupSize,?this.pageSize

*?this.groupSize);

request.getSession().setAttribute("page_all_size",?this.size);

request.getSession().setAttribute("page_cur_list",?list);

this.setShowList(list);//?設(shè)置頁(yè)面上的顯示數(shù)據(jù)

}?else?{

this.setShowList((List)?request.getSession().getAttribute(

"page_cur_list"));//?設(shè)置頁(yè)面上的顯示數(shù)據(jù)

}

}

/**

?*?每次通過sql語(yǔ)句從數(shù)據(jù)庫(kù)里面分組取出需要顯示的數(shù)據(jù)

?*?

?*?@param?request

?*????????????javax.servlet.http.HttpServletRequest對(duì)象

?*?@param?sql

?*????????????String?查詢數(shù)據(jù)庫(kù)的sql語(yǔ)句

?*?@param?pageSize

?*????????????int?每頁(yè)顯示的條數(shù)

?*?@param?groupSize

?*????????????int?分成多少組

?*?@param?url

?*????????????String?頁(yè)面跳轉(zhuǎn)的路徑,若沒有特殊的參數(shù)傳遞,可以傳入null或"",

?*????????????如是在aciton里面調(diào)用,并且action是繼承自DispatherAction的話最好傳入完整的路徑

?*/

public?void?init(HttpServletRequest?request,?String?sql,?int?pageSize,

int?groupSize,?String?url)?{

//?當(dāng)前第幾頁(yè)

String?curPage?=?request.getParameter("pageNo");

init(request,?sql,?pageSize,?groupSize,?parseInt(curPage,?-1),?url);

}

/**

?*?每次通過sql語(yǔ)句從數(shù)據(jù)庫(kù)里面分組取出需要顯示的數(shù)據(jù)

?*?

?*?@param?request

?*????????????javax.servlet.http.HttpServletRequest對(duì)象

?*?@param?sql

?*????????????String?查詢數(shù)據(jù)庫(kù)的sql語(yǔ)句

?*?@param?pageSize

?*????????????int?每頁(yè)顯示的條數(shù)

?*?@param?groupSize

?*????????????int?分成多少組

?*?@param?url

?*????????????String?頁(yè)面跳轉(zhuǎn)的路徑,若沒有特殊的參數(shù)傳遞,可以傳入null或"",

?*????????????如是在aciton里面調(diào)用,并且action是繼承自DispatherAction的話最好傳入完整的路徑

?*/

public?void?init(HttpServletRequest?request,?String?sql,?int?pageSize,

int?groupSize,?int?pageNo)?{

init(request,?sql,?pageSize,?groupSize,?pageNo,?"");

}

太多了,貼不下,見附件

求java分頁(yè)算法(最好有注釋)

我以前的jsp頁(yè)面嵌入的

%

richen.setpageSize(8); //設(shè)置一頁(yè)顯示記錄的條數(shù)

richen.setuserID(user1.getUerInfo().get("userID").toString());

Vector vect = new Vector();

vect=richen.getData(); //取出所有的記錄

String pageNumStr=request.getParameter("pageNum"); //取得當(dāng)前的頁(yè)碼

if(pageNumStr==""||pageNumStr==null)

pageNumStr="1";

int pageNum=Integer.parseInt(pageNumStr);

richen.setpageNum(pageNum); //設(shè)置要顯示的那頁(yè)

richen.page();//分頁(yè)

int i=0;

int first=(richen.getpageNum()-1)*richen.getpageSize(); //計(jì)算從哪條記錄開始

int last=richen.getpageNum()*richen.getpageSize();//計(jì)算到哪條結(jié)束

if(richen.getLastpageNum()!=0pageNum==richen.getTotalPage()){ //當(dāng)最后一頁(yè)不夠時(shí)

last=richen.getpageNum()*richen.getpageSize()-(richen.getpageSize()-richen.getLastpageNum());

}

for(i=first;ilast;i++){ //循環(huán)顯示當(dāng)頁(yè)記錄

Hashtable hash = new Hashtable();

hash=(Hashtable)vect.get(i);

%


當(dāng)前文章:java分頁(yè)代碼算法 java分頁(yè)顯示
URL地址:http://weahome.cn/article/dogsjhc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部