java 分页,工具类

page.java po
package com.lehe.backAdmin.po;

/**
* @author wanghua
*分页使用
* Dec 17, 2009 2:09:42 PM
*/
package com.lehe.backAdmin.po;

/**
* @author wanghua
*分页使用
* Dec 17, 2009 2:09:42 PM
*/
public class Page {
private int totalRows; //总行数
private int pageSize; //每页显示的行数
private int currentPage; //当前页号
private int totalPages=1; //总页数
private int startRow; //当前页在数据库中的起始行
public Page(int _totalRows,int pageSize) {
this.pageSize=pageSize;
totalRows = _totalRows;
totalPages=totalRows/pageSize;
int mod=(int) (totalRows%pageSize);
if(mod>0||totalPages==0){
totalPages++;
}
currentPage = 1;
startRow = 0;
}

public int getStartRow() {
return startRow;
}

public int getTotalPages() {
return totalPages;
}

public int getCurrentPage() {
return currentPage;
}

public int getPageSize() {
return pageSize;
}

public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}

public void setStartRow(int startRow) {
this.startRow = startRow;
}

public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}

public int getTotalRows() {
return totalRows;
}

public void first() {
currentPage = 1;
startRow = 0;
}

public void previous() {
if (currentPage == 1) {
return;
}
currentPage--;
startRow = (currentPage - 1) * pageSize;
}

public void next() {
if (currentPage < totalPages) {
currentPage++;
}
startRow = (currentPage - 1) * pageSize;
}
public void goPage(){
if (currentPage>totalPages) {
currentPage=totalPages;
}else if (currentPage<1) {
currentPage=1;
}
startRow = (currentPage - 1) * pageSize;
}
public void last() {
currentPage = totalPages;
startRow = (currentPage - 1) * pageSize;
}

public void refresh(int _currentPage) {
currentPage = _currentPage;
if (currentPage > totalPages) {
last();
}
}
}


page.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">
<html>
<head>
<script type="text/javascript">
function setType(type){
var cpage=document.getElementById("currentPage").value;
document.getElementById("dotype").value=type;
return checkNum(cpage);
}
function checkNum(val){
if(val.replace(/\s/g,'')!=''){
if(!isNum(val)){
alert("跳转到的页数只能为数字");
document.getElementById("currentPage").value="";
return false;
}
}else{
alert("要跳转到的页数为空!");
return false;
}
return true;
}
function isNum(s)
{
if (s!=null && s!="")
{
return !isNaN(s);
}
return false;
}
</script>
</head>
<body>
第<s:property value='page.currentPage'/>页/共<s:property value='page.totalPages'/>页
<input type="hidden" name="dotype" value=""/>
<s:if test="page.totalPages!=1">
<s:if test="page.currentPage==1">
<input type="submit" disabled οnclick="return setType('previous');" value="上一页"/>
<input type="submit" disabled οnclick="return setType('first');" value="首页"/>
</s:if>
<s:else>
<input type="submit" οnclick="return setType('previous');" value="上一页"/>
<input type="submit" οnclick="return setType('first');" value="首页"/>
</s:else>
<s:if test="page.currentPage==page.totalPages">
<input type="submit" disabled οnclick="return setType('next');" value="下一页"/>
<input type="submit" disabled οnclick="return setType('last');" value="尾页"/>
</s:if>
<s:else>
<input type="submit" οnclick="return setType('next');" value="下一页"/>
<input type="submit" οnclick="return setType('last');" value="尾页"/>
</s:else>
<input type="submit" οnclick="return setType('goPage');" value="跳转到"/>
<input type="text" size="1" maxlength="3" id="currentPage" οnchange="checkNum(this.value)" name="currentPage" value="<s:property value='page.currentPage'/>"/>页
</s:if>
<s:else>
<input type="submit" disabled οnclick="return setType('previous');" value="上一页"/>
<input type="submit" disabled οnclick="return setType('next');" value="下一页"/>
<input type="submit" disabled οnclick="return setType('next');" value="下一页"/>
<input type="submit" disabled οnclick="return setType('last');" value="尾页"/>
<input type="submit" disabled οnclick="return setType('goPage');" value="跳转到"/>
<input type="text" disabled size="1" maxlength="3" οnchange="checkNum(this.value)" id="currentPage" name="currentPage" value="<s:property value='page.currentPage'/>"/>页
</s:else>

</body>
</html>


点击“上一页”,“下一页”所进行的操作
/**
*
* @param dotype分页操作的类型
* @param page分页对象
* @return处理后的page class
*/
public static Page pageHandle(String dotype,Page page){
if (dotype!=null) {
if (dotype.equals("previous")) {
page.previous();
}else if (dotype.equals("next")) {
page.next();
}else if (dotype.equals("first")) {
page.first();
}else if (dotype.equals("last")) {
page.last();
}else if (dotype.equals("goPage")){
page.goPage();
}
}else {
return page;
}
return page;
}


具体action 中所写
三个必须有的属性
private Page page;
private String dotype;
private String currentPage="1";
方法中的具体学法:
int totalRows=keyWordManagerService.getFilterinfoRows(sqlCount.toString());
int pageSize=Integer.parseInt(SystemManager.getInstance().getPropValue("keyPageSize"));
page=new Page(totalRows,pageSize);
page.setCurrentPage(Integer.parseInt(currentPage));
//分页操作,对当前页数加减
page=LeheUtils.pageHandle(dotype, page);
kList=keyWordManagerService.keyWordList(sqlList.toString(),page.getStartRow(),pageSize);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值