最好用的分页代码(java版)(2)

2021-09-24 20:33

*

* 只需传递一次数据,会有一个pageNo的参数进行传递

*

* 这种方法在jsp页面上使用很方便,但是在servlet或action里面使用时,要达到减少数据库访问的目的,则需先判断是否执行查询数据库操作,如下使用:

*

* List list = null; if(request.getParameter("pageNo") == null ||

* request.getParameter("pageNo").equals("null")){ list =

* dao.getDataFromDb();//调用自己的方法操作数据库,从数据库里面取出数据 } CutPage cp = new

* CupPage(request,list,20,"");

*

* @param request

* javax.servlet.http.HttpServletRequest对象

* @param allList

* 传进来的所有数据,第一次会放把数据放在session里面,以后在session中取数据

* @param pageSize

* 每页显示的条数

* @param url

* 页面跳转的路径,若没有特殊的参数传递,可以赋成null或"",

* 如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径

*/

public void init(HttpServletRequest request, List allList, int pageSize,

String url) {

String page_num = request.getParameter("pageNo");

this.curPageNo = parseInt(page_num, 0);// 当前页码

List list = new ArrayList();

if (allList != null) {

list = allList;

request.getSession().setAttribute("all_List", list);

} else {

list = (List) request.getSession().getAttribute("all_List");

if (list == null) {

list = new ArrayList();

}

}

this.size = list.size();// 总的数据条数

if (url != null) {

this.url = url;

} else {

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

}

if (pageSize > 0)

this.pageSize = pageSize;// 每页显示的条数

setShowList(list);// 设置显示数据

}

/**

* 返回分页导航条

*

* @return pageNavigation String 分页导航条

*/

public String getPageNavigation() {

// 最终返回的分页导航条

String pageNavigation = "共有" + size + "条数据  ";

// 记录数超过一页,需要分页

if (size > pageSize) {

if (url != null && !"".equals(url)) {

if (url.indexOf("?") > -1) {

// 如果url中已经包含了其他的参数,就把curPageNo参数接在后面 url += "&";

} else {

// 如果url中没有别的参数

url += "?";

}

// 生成一个提交页面的函数

pageNavigation += "<script>";

pageNavigation += "function gotoPage(page_num){";

pageNavigation += "location.href='" + url

+ "pageNo='+page_num;";

pageNavigation += "}</script>";

}

pageNavigation += "每页"

+ pageSize

+ "条&nbsp;&nbsp;"

+ "当前第<select name='pageNo' id='pageNo' onchange='javascript:gotoPage(this.value)'>";

int curPageNos = size % pageSize == 0 ? size / pageSize : size

/ pageSize + 1;

for (int i = 0; i < curPageNos; i++) {

if (i == curPageNo) {

pageNavigation += "<option value='" + i + "' selected>"

+ (i + 1) + "</option>";

} else {

pageNavigation += "<option value='" + i + "'>" + (i + 1)

+ "</option>";

}

}

pageNavigation += "</select>页&nbsp;&nbsp;共" + curPageNos

+ "页&nbsp;&nbsp;";

// 如果不是第一页,导航条将包含"首页"和"上一页"的连接

if (curPageNo > 0) {

pageNavigation += "[<a href=\"javascript:void(0);\" onclick=\"gotoPage(0);return false;\">首页</a>]&nbsp;"

+ "[<a href=\"javascript:void(0);\" onclick=\"gotoPage("

+ (curPageNo - 1) + ");return false;\">上一页</a>]&nbsp;&nbsp;"; } else {

pageNavigation += "[首页]&nbsp;[上一页]&nbsp;&nbsp;";

}

// 如果不是最后一页,导航条将包含"末页"和"下一页"

if (curPageNo < curPageNos - 1) {

pageNavigation += "[<a href=\"javascript:void(0);\" onclick=\"gotoPage(" + (curPageNo + 1)

+ ");return false;\">下一页</a>]&nbsp;"

+ "[<a href=\"javascript:void(0);\" onclick=\"gotoPage(" + (curPageNos - 1) + ");return false;\">末页</a>]";

} else {

pageNavigation += "[下一页]&nbsp;[末页]";

}

}

return pageNavigation;

}

/**

* 返回分页后的总页数

*

* @return pagecount int 总页数

*/

public int getPageCount() {

int pagecount = 0;

if (size % pageSize == 0) {

pagecount = size / pageSize;

} else {

pagecount = size / pageSize + 1;

}

return pagecount;

}

/**

* 返回最后一页的记录数

最好用的分页代码(java版)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:农村入党转正申请书2016大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: