`
wanghua305
  • 浏览: 29318 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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 onclick="return setType('previous');" value="上一页"/>
<input type="submit" disabled onclick="return setType('first');" value="首页"/>
</s:if>
<s:else>
<input type="submit" onclick="return setType('previous');" value="上一页"/>
<input type="submit" onclick="return setType('first');" value="首页"/>
</s:else>
<s:if test="page.currentPage==page.totalPages">
<input type="submit" disabled onclick="return setType('next');" value="下一页"/>
<input type="submit" disabled onclick="return setType('last');" value="尾页"/>
</s:if>
<s:else>
<input type="submit" onclick="return setType('next');" value="下一页"/>
<input type="submit" onclick="return setType('last');" value="尾页"/>
</s:else>
<input type="submit" onclick="return setType('goPage');" value="跳转到"/>
<input type="text" size="1" maxlength="3" id="currentPage" onchange="checkNum(this.value)" name="currentPage" value="<s:property value='page.currentPage'/>"/>页
</s:if>
<s:else>
<input type="submit" disabled onclick="return setType('previous');" value="上一页"/>
<input type="submit" disabled onclick="return setType('next');" value="下一页"/>
<input type="submit" disabled onclick="return setType('next');" value="下一页"/>
<input type="submit" disabled onclick="return setType('last');" value="尾页"/>
<input type="submit" disabled onclick="return setType('goPage');" value="跳转到"/>
<input type="text"  disabled size="1" maxlength="3" onchange="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);
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics