首先在util包下创建一个MyPage。JAVA
然后再WEB-INF下面创建一个 MyPage.tld,一定要在WEB-INF下面
package util;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 自定义的分页标签
* @author刘秋荣
* @version1.0
* @category 分页标签 创建时间:2012-8-17 17:00
*/
public class MyPage extends TagSupport {
private String url = null;
private int pageIndex;
private int pageMax;
public void setUrl(String url) {
this.url = url;
}
public String getUrl() {
return this.url;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageIndex() {
return this.pageIndex;
}
public void setPageMax(int pageMax) {
this.pageMax = pageMax;
}
public int getPageMax() {
return this.pageMax;
}
@Override
public int doStartTag() throws JspException {
StringBuffer str = new StringBuffer();
if (pageIndex == 1) {
str.append("首页 上一页 ");
} else {
str.append(" <a href='" + url + "page=1'>首页</a> "
+ "<a href='" + url + "page=" + (pageIndex - 1) + "'>上一页</a> ");
}
if (pageIndex / 6 < 1.0 || pageMax < 10) {
for (int i = 1; i <= 9; i++) {
if (i <= pageMax) {
if (pageIndex != i) {
str.append("<a href='" + url + "page=" + i + "'>[" + i + "]</a> ");
} else {
str.append(" " + i + " ");
}
}
}
} else if (pageIndex / 6 >= 1.0 && pageMax >= 10) {
int fri = 0;
int max = 0;
if (pageMax - pageIndex > 4) {
fri = pageIndex - 4;
max = pageIndex + 4;
} else {
fri = pageMax - 8;
max = pageMax;
}
for (int i = fri; i <= max; i++) {
if (i <= pageMax) {
if (pageIndex != i) {
str.append("<a href='" + url + "page=" + i + "'>[" + i + "]</a> ");
} else {
str.append(" " + i + " ");
}
}
}
}
if (pageIndex == pageMax || pageMax < 2) {
str.append("下一页 尾页");
} else {
str.append("<a href='" + url + "page=" + (pageIndex + 1) + "'>下一页</a> "
+ "<a href='" + url + "page=" + pageMax + "'>尾页</a>");
}
str.append(" 跳转至:<select οnchange=\"location='"+url+"page='+this.value;\">");
for(int i=1;i<=pageMax;i++){
str.append("<option value='"+i+"' "+(i==pageIndex?"selected":"")+">第"+i+"页</option>");
}
str.append("</select>");
try {
if (str.length()>0) {
pageContext.getOut().write(new String(str));
}
} catch (Exception e) {
throw new JspException(e);
}
return EVAL_PAGE;
}
}
然后再WEB-INF下面创建一个 MyPage.tld,一定要在WEB-INF下面
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>MyPage</short-name>
<!--OutputTag-->
<tag>
<name>page</name>
<tag-class>util.MyPage</tag-class>
<body-content>empty</body-content>
<attribute>
<name>url</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>pageIndex</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>pageMax</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
在jsp页面中头部添加
<%@taglib uri="/WEB-INF/MyPage.tld" prefix="pt"%>
分页尾部添加
<!-- 分页加载 -->
<pt:page pageIndex="${param.page}" url="ServletConfig?type=1&" pageMax="${requestScope.pageCount}"/>
在servlet页面中
//每页显示的数据数量
int size=10;
int pages=1;//当前第几页
//判断如果当前是通过分页浏览该页面时
if(request.getParameter("page")!=null){
pages=Integer.valueOf(request.getParameter("page"));
System.out.println("获取第几页的信息"+pages);
}
int recordCount=biz.getRecordCount();//获取总的记录数
//计算出总的页数
int pageCount=recordCount%size==0?recordCount/size:(recordCount/size+1);
//将总页数的值保存到请求对象中
request.setAttribute("pageCount", pageCount);
request.setAttribute("recordCount",recordCount);
//分页获取到数据
List<Configuration> list=biz.queryByPage(pages, size);
//将分页的数据保存到请求对象中
request.setAttribute("ConfigList", list);
request.getRequestDispatcher("admin/config.jsp").forward(request, response);