=========java文件
package org.rain.tag;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class SmallRainJSPInTag extends SimpleTagSupport {
private Integer smallRainTotals;
private Integer smallRainTotalPages;
private Integer smallRainCounts = 10;
private String uri;
private String parameterName;
public String getParameterName() {
return parameterName;
}
public void setParameterName(String parameterName) {
this.parameterName = parameterName;
}
public Integer getSmallRainTotals() {
return smallRainTotals;
}
public void setSmallRainTotals(Integer smallRainTotals) {
this.smallRainTotals = smallRainTotals;
}
public Integer getSmallRainCounts() {
return smallRainCounts;
}
public void setSmallRainCounts(Integer smallRainCounts) {
this.smallRainCounts = smallRainCounts;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
@Override
public void doTag() throws JspException, IOException {
smallRainTotalPages = smallRainTotals / smallRainCounts+1;
int doPageId=1;
PageContext pageContext = (PageContext) getJspContext();
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
String smallRainParameter=request.getParameter(parameterName);
if(null!=smallRainParameter) {
try {
doPageId=Integer.parseInt(smallRainParameter);
}catch(Exception e) {
doPageId=1;
}
}
StringBuilder smallRainSB = new StringBuilder();
if (doPageId > 1) {
smallRainSB.append(" <a href=\"" + uri + (doPageId-1)+"\"" + ">上一页</a> ");
}
for (int i = 1; i <= smallRainTotalPages; i++) {
if (i == doPageId) {
smallRainSB.append(i);
} else {
smallRainSB.append(" <a href=\"" + uri +i+ "\"" + ">" + i + "</a> ");
}
}
if (doPageId < smallRainTotalPages) {
smallRainSB.append(" <a href=\"" + uri + (doPageId+1) +"\"" + ">下一页</a> ");
}
getJspContext().getOut().write(smallRainSB.toString().toCharArray());
}
}
=================tld文件,文件放在/WEB-INF/tld/rain.tld
<?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>rain</short-name>
<tag>
<name>rainbeanInPage</name>
<tag-class>org.rain.tag.SmallRainJSPInTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>smallRainTotals</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>parameterName</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>smallRainCounts</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>uri</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
==================web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<jsp-config>
<taglib>
<taglib-uri>/web-rain/welcome.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/rain.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
============jsp文件,文件名为MulPageSystemTag.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/web-rain/welcome.tld" prefix="rain"%>
<%@ page import="java.util.List,java.util.ArrayList"%>
<%!class PageSystemBean {
private String school;
private String home;
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
}
List<PageSystemBean> smallRainPageBeans;
@Override
public void jspInit() {
int smallRainTotalRecord = 142;
smallRainPageBeans = new ArrayList<PageSystemBean>(smallRainTotalRecord);
for (int i = 0; i < smallRainTotalRecord; i++) {
PageSystemBean bean = new PageSystemBean();
bean.setSchool("大学" + i);
bean.setHome("地址" + i);
smallRainPageBeans.add(i, bean);
}
}%>
<%
int smallRainSize = 10;
int smallRainCurrent = 1;
String smallRainpage = request.getParameter("smallRainpage");
if (smallRainpage != null) {
smallRainCurrent = Integer.parseInt(smallRainpage);
}
int smallRainDo = (smallRainCurrent - 1) * smallRainSize;
int totalPageBeans = smallRainPageBeans.size();
int totalPages = totalPageBeans / smallRainSize;
totalPages++;
List<PageSystemBean> smallRainCurrentPageBeans;
if (totalPages == smallRainCurrent) {
smallRainCurrentPageBeans = smallRainPageBeans.subList(smallRainDo, totalPageBeans);
} else {
smallRainCurrentPageBeans = smallRainPageBeans.subList(smallRainDo, smallRainDo + smallRainSize);
}
%>
<html>
<head>
<meta charset="UTF-8">
<title>晓雨 JSP + TAG实现分页</title>
</head>
<body>
<h1>晓雨 JSP + TAG实现分页</h1>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="EFF6EFE">
<td width="50" height="45"><b>学校</b></td>
<td width="50" height="45"><b>地址</b></td>
</tr>
<%
int backColor = 0;
for (PageSystemBean smallRainPageBean : smallRainCurrentPageBeans) {
backColor++;
if (backColor % 2 == 0) {
%>
<tr bgcolor="EFFEEFE">
<%
} else {
%>
<tr>
<%
}
%>
<td width="50" height="35"><%=smallRainPageBean.getSchool()%></td>
<td width="50" height="35"><%=smallRainPageBean.getHome()%></td>
</tr>
<%
}
%>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<b> <rain:rainbeanInPage smallRainTotals="142"
parameterName="smallRainpage"
uri="MulPageSystemTag.jsp?smallRainpage=" smallRainCounts="10" />
</b>
</table>
</body>
</html>