首先创建一个PageTag.java类: package util.tag; import java.io.IOException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.SimpleTagSupport; import javax.servlet.jsp.tagext.TagSupport; import util.tag.*; /** * 标签类 用于分页查询 * */ public class PageTag extends SimpleTagSupport { /** * */ private Integer pageCurrent; public Integer getPageCurrent() { return pageCurrent; } public void setPageCurrent(Integer pageCurrent) { this.pageCurrent = pageCurrent; } public Integer getTotalPage() { return totalPage; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String getParam() { return param; } public void setParam(String param) { this.param = param; } private Integer totalPage; private String path; private String param; public void doTag(){ ////标签开始时调用的方法 JspWriter w=this.getJspContext().getOut(); StringBuffer sb=new StringBuffer(); if (this.pageCurrent == 1) { sb.append("[最首页]"); sb.append("[上一页]"); } if (this.pageCurrent != 1) { sb.append("[<a href=\""); sb.append(path); sb.append("?"); sb.append(param); sb.append("="); sb.append("1"); sb.append("\">"); sb.append("首页</a>]"); sb.append(" "); sb.append("[<a href=\""); sb.append(path); sb.append("?"); sb.append(param); sb.append("="); sb.append(this.pageCurrent-1); sb.append("\">"); sb.append("上一页</a>]"); sb.append(" "); } for (int i = this.pageCurrent - 2; i <= this.pageCurrent +2; i++) { if (i <= 0 || i > this.totalPage) { continue; } if (i == this.pageCurrent) { sb.append("[<span style='color:#FF0000; border: 1px solid #cccccc; font-weight:bold; width:15px;text-align: center;'> "); sb.append(i); sb.append(" </span>]"); } else { sb.append("[<a href=\""); sb.append( path); sb.append("?"); sb.append(param); sb.append("="); sb.append( i ); sb.append("\"> " ); sb.append(i); sb.append(" </a>]"); } } if (this.pageCurrent == this.totalPage || this.totalPage == 0) { sb.append("[下一页]"); sb.append("[最末页]"); } if (this.pageCurrent!=this.totalPage && this.totalPage != 0) { sb.append("[<a href=\""); sb.append(path); sb.append("?"); sb.append(param); sb.append("="); sb.append(this.pageCurrent+ 1); sb.append("\">"); sb.append("下一页</a>]"); sb.append("[<a href=\""); sb.append(path); sb.append("?"); sb.append(param); sb.append("="); sb.append(this.totalPage); sb.append("\">"); sb.append("最末页</a>]"); } try { w.print(sb); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 再创建pagetag.tld标签文件: <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java./dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>pp</short-name> <uri>/WEB-INF/pagetag.tld</uri> <tag> <name>pagelink</name> <tag-class>util.tag.PageTag</tag-class> <body-content>empty</body-content> <attribute> <name>pageCurrent</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>totalPage</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>param</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>path</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib> 最后在web.xml中注册: <jsp-config> <taglib> <taglib-uri>/pagelink</taglib-uri> <taglib-location>/WEB-INF/pagetag.tld</taglib-location> </taglib> </jsp-config> 在jsp页面上使用: <%@taglib prefix="pp" uri="/WEB-INF/pagetag.tld"%> <pp:pagelink totalPage="${pageTotal}" pageCurrent="${pageCurrent}" path="FindAllServlet" param="pagecurrent"/>
|
|
来自: liuguichuan > 《java web》