分页java类,mark下来。
package com.core;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyPagination {
public List<Object> list = null;
private int recordCount = 0; //记录数
private int pagesize = 0; //每页记录数
private int maxPage = 0; //最大页数
private int maxview=5;//最多能看4个数字;
// 初始化分页信息
public List getInitPage(List list, int Page, int pagesize) {
List<Object> newList = new ArrayList<Object>();
this.list = list;
recordCount = list.size();
this.pagesize = pagesize;
this.maxPage = getMaxPage();
Page=Math.round(Page);
try {
for (int i = (Page - 1) * pagesize; i <= Page * pagesize - 1; i++) {
try {
if (i >= recordCount) {
break;
}
} catch (Exception e) {
}
newList.add((Object) list.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
return newList;
}
// 获取指定页的数据
public List<Object> getAppointPage(int Page) {
Page=Math.round(Page);
List<Object> newList = new ArrayList<Object>();
try {
for (int i = (Page - 1) * pagesize; i <= Page * pagesize - 1; i++) {
try {
if (i >= recordCount) {
break;
}
} catch (Exception e) {
}
newList.add((Object) list.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
return newList;
}
// 获取最大记录数
public int getMaxPage() {
int maxPage = (recordCount % pagesize == 0) ? (recordCount / pagesize)
: (recordCount / pagesize + 1);
return maxPage;
}
// 获取总记录数
public int getRecordSize() {
return recordCount;
}
// 获取当前页数
public int getPage(String str) {
System.out.println("STR:" + str + "&&&&" + recordCount);
if (str == null) {
str = "0";
}
System.out.print("Page=??????");
float oldPage = Float.parseFloat(str);
int Page=Math.round(oldPage);
System.out.print("Page="+Page);
if (Page < 1) {
Page = 1;
} else {
if (((Page - 1) * pagesize + 1) > recordCount) {
Page = maxPage;
}
}
return Page;
}
public String printCtrl(String url,int Page) {
//if ((this.Page.value=='')||(typeof(this.Page.value.toString)!=number)) {window.alert('输入错误!');document.viewtb.printtb.printfo.Page.focus();}
String choose="";
String clickaction="<script language='javascript' type='text/javascript'>function checkviewtb(){var x=document.getElementsByName('Page');if(x[0].value<1||x[0].value>"+maxPage+"||isNaN(x[0].value)) {alert('请输入有效的数字!');x[0].value=''; x[0].focus(); return false; }}</script>";
//String pageinput="<select name='Page'>";
String strHtml = clickaction+"<table width='100%' border='0px' cellspacing='0' cellpadding='0' name='printtb' ><form name='printfo' action="+url+" method=post border='0px' onSubmit='return checkviewtb()'><tr> <td height='20' align='right'>页数:["
+ Math.round(Page) + "/" + maxPage + "]";
try {
//if (Page > 1) {
if(Page == 1)
{
strHtml = strHtml +" <span style='color:#a3a3a3;size:14px'>首页</span>";
strHtml = strHtml + " <span style='color:#a3a3a3;size:14px'>上一页</span>";
}else
{
strHtml = strHtml +" <a href='"+url+"&Page=1'>首页</a>";
strHtml = strHtml + " <a href='"+url+"&Page=" + Math.round(Page - 1)
+ "'>上一页</a>";
}
//}
//if (Page < maxPage) {
//strHtml = strHtml + "<span><a href='"+url+"&Page=" + (i + 1)+ "'><%=i%></a></span>";
String curpagestr="";//当前页红色
if(maxview<=maxPage)
{
for(int i=-2;i<(maxview-2);i++)
{
// if((maxview+Page-1)<=maxPage)
if((Page-2)<=0)
{
if(Page==i+3){
curpagestr="<font color=red>"+(i+3)+"</font>";
}
else{
curpagestr="<font>"+(i+3)+"</font>";
}
strHtml = strHtml +" <a href='"+url+"&Page=" + (i+3)+ "'>"+curpagestr+"</a>";
}
else if((Page+2)<maxPage)
{
if(Page==Math.round(i+Page)){
curpagestr="<font color=red>"+Math.round(i+Page)+"</font>";
}
else{
curpagestr="<font>"+Math.round(i+Page)+"</font>";
}
strHtml = strHtml +" <a href='"+url+"&Page=" + Math.round(i+Page)+ "'>"+curpagestr+"</a>";
}
else
{
if(Page==maxPage-2+i){
curpagestr="<font color=red>"+(maxPage-2+i)+"</font>";
}
else{
curpagestr="<font>"+(maxPage-2+i)+"</font>";
}
strHtml = strHtml +" <a href='"+url+"&Page=" + (maxPage-2+i)+ "'>"+curpagestr+"</a>";
}
}
}
else
{
for(int i=0;i<maxPage;i++)
{
if(Page==i+1){
curpagestr="<font color=red>"+(i+1)+"</font>";
}
else{
curpagestr="<font>"+(i+1)+"</font>";
}
strHtml = strHtml +" <a href='"+url+"&Page=" + (i+1) + "'>"+curpagestr+"</a>";
}
}
/*for(int i=0;i<maxPage;i++)
{
if((i+1)==Page)
{
choose="selected";
pageinput=pageinput+"<option value='"+(i+1)+"' "+choose+">"+(i+1)+"</option>";
}
else
{
pageinput=pageinput+"<option value='"+(i+1)+"'>"+(i+1)+"</option>";
}
}
//pageinput=pageinput+"</select>";*/
if(Page >= maxPage)
{
strHtml = strHtml + " <span style='color:#a3a3a3;size:14px'>下一页</span>";
strHtml = strHtml + " <span style='color:#a3a3a3;size:14px'>末页</span> ";
}
else
{
strHtml = strHtml + " <a href='"+url+"&Page=" + (Page + 1)
+ "'>下一页</a>";
strHtml = strHtml + " <a href='"+url+"&Page=" + maxPage+ "'>末页</a> ";
}
//<input type='text' id='page' name='Page' width='10px' size='2' >}
strHtml = strHtml + "第<input type='text' id='page' name='Page' width='10px' size='2' >页 <input type='submit' value='GO' name='gobutton' >";
strHtml = strHtml + "</td> </tr> </form></table>";
} catch (Exception e) {
e.printStackTrace();
}
return strHtml;
}
}