分享

jsp 分页

 liuguichuan 2013-08-08
首先创建一个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"/>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多