package com.softdevelopstudio.util;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class PaginateNewVersion extends TagSupport {
private int all = 0; //总计多少条记录
private int perpage = 1; //每页多少条
private int current = 1; //当前第几页
private int intTotalPages = 0; //总页数
private String context; //上下文环境
private String flag; //判断是前台还是后台分页
private int perSegment = 5; //每页显示页码数
private int currentSegment = 0; //当前页所在的段,从0开始
public void initial() {
int intTemp = 0;
all = all < 0 ? 0 : all;
perpage = perpage < 1 ? 1 : perpage;
current = current < 1 ? 1 : current;
currentSegment = Math.round((current - 0.1f) / perSegment - 0.5f);
intTemp = all / perpage;
intTotalPages = (all % perpage == 0) ? intTemp : intTemp + 1;
if (current > intTotalPages) {
current = intTotalPages;
}
}
public int doStartTag() throws JspException {
this.initial();
try {
this.pageContext.getOut().println(print());
} catch (IOException ex) {
ex.printStackTrace();
}
return SKIP_BODY;
}
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
/**
* print the pagination
*/
public String print() {
String strFirst = "<img align=\"center\" border=0 height=20 src=\"" +
context + "/images/arrow_first.gif\">";
String strPrev = "<img align=\"top\" border=0 src=\"" +
context + "/images/previous_page.gif\" >";
String strNext = " <img align=\"top\" border=0 src=\"" +
context + "/images/next_page.gif\">";
String strLast = "<img align=\"center\" border=0 height=20 src=\"" +
context + "/images/arrow_las.gif\">";
String strSpace = " ";
StringBuffer sb = new StringBuffer("");
sb.append("<form name=innerForm>");
sb.append("<input type=\"hidden\" name=\"mhd\" value=\"toList\"/>");
if (flag != null && !flag.equals("")) {
sb.append(
"<input type=\"hidden\" name=\"flag\" value=\"gateway\"/>");
}
sb = sb.append(
"<table width=\"%100\" border=0 cellpadding=0 cellspacing=0 height=18>\n");
sb = sb.append(" <tbody>\n");
sb = sb.append(" <tr>\n");
sb = sb.append(" <td align=right width=\"100%\"><span class=\"font12g18h\"><font color=#333333>.: 共找到 " +
all + " 笔记录 [ " + current + " / " +
intTotalPages + " ]</font></span>\n");
sb.append(strSpace);
//生成下拉页面
String str = this.generatePageList();
sb = sb.append(str);
sb.append(strSpace);
sb.append(strSpace);
sb = sb.append(strSpace);
if (current > 1) {
sb = sb.append("<a href='javascript:go(" + (current - 1) + ");'>" +
strPrev + "</a>");
} else {
sb = sb.append(strPrev);
}
sb = sb.append(strSpace);
int prevPage = currentSegment * perSegment;
if (currentSegment > 0) {
sb = sb.append("<label class=font12g18h><a href='javascript:go(" + prevPage +
");'><<</a></label>");
} else {
sb = sb.append("<label class=font12g18h><<</label>");
}
str = this.generatePageArray();
sb = sb.append(str);
sb.append(strSpace);
sb.append(strSpace);
int nextPage = (currentSegment + 1) * perSegment + 1;
int totalSegment = Math.round((intTotalPages - 0.1f) / perSegment -
0.5f);
if (currentSegment < totalSegment) {
sb = sb.append("<label class=font12g18h><a href='javascript:go(" + nextPage +
");'>>></a></label>");
} else {
sb = sb.append("<label class=font12g18h>>></label>");
}
if (current < intTotalPages) {
sb = sb.append("<a href='javascript:go(" + (current + 1) +
");'>" +
strNext + "</a>");
} else {
sb = sb.append(strNext);
}
sb = sb.append(strSpace);
sb = sb.append(" </td>\n");
sb = sb.append(" </tr>\n");
sb = sb.append(" </tbody>\n");
sb = sb.append("</table>\n");
sb.append("</form>");
return sb.toString();
}
/**
* 生成分页的下拉页面
* @return String
*/
public String generatePageList() {
String str = "<font color=#333333><select name=\"page\" onChange=\"change(document.innerForm.page.options[document.innerForm.page.selectedIndex].value)\" > ";
str += "<option value=\"1\">请选择</option>";
for (int i = 1; i <= intTotalPages; i++) {
str = str + "<option value=" + i + ">" + i + "</option>";
}
str += "</select></font>";
return str;
}
public String generatePageArray() {
int begin = 1;
begin = currentSegment * perSegment + 1;
int end = (begin + perSegment - 1) < intTotalPages ?
(begin + perSegment - 1) : intTotalPages;
String str = "";
for (int i = begin; i <= end; i++) {
if (i == current) {
str = str + "<strong class='font12g18h'>" + i + "</strong>";
} else {
str = str + "<label class=font12g18h>" +"<a href='javascript:go(" + i + ");'>" +i + "</a></label>";
}
if (i < end) {
str += " ";
}
}
return str;
}
// public String generatePageArray() {
// String str = "";
// for (int i = 1; i <= intTotalPages; i++) {
// str = str + "<input size=1 align=center readonly=true value=" + i + ">" + i + "</input>";
// }
//
// return str;
// }
public void setAll(int all) {
this.all = all;
}
public void setPerpage(int perpage) {
this.perpage = perpage;
}
public void setCurrent(int current) {
this.current = current;
}
public void setContext(String context) {
this.context = context;
}
public void setFlag(String flag) {
this.flag = flag;
}
public int getAll() {
return all;
}
public int getPerpage() {
return perpage;
}
public int getCurrent() {
return current;
}
public String getContext() {
return context;
}
public String getFlag() {
return flag;
}
}
评论2
最新资源