Pagination Tag

 p.tld

-------------------------------

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>p</short-name>
  <uri>http://java.sun.com/pagination</uri>
  <display-name>pagination</display-name>
  <description>pagination</description>
 
  <tag>
    <name>page</name>
    <tag-class>com.paic.elis.product.pdf.web.util.PaginationTag</tag-class>
    <body-content>JSP</body-content>
    <description>
        pagination tag
    </description>
    <attribute>
        <name>count</name>
        <required>true</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
        <name>pageSize</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
        <name>pageIndex</name>
        <required>true</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
  </tag>

</taglib>
===============================

package com.***.product.pdf.web.util;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.taglibs.standard.tag.common.core.NullAttributeException;
import org.apache.taglibs.standard.tag.el.core.ExpressionUtil;

import com.paic.pafa.app.lwc.core.util.DevLog;

public class PaginationTag extends TagSupport {
 
  //????
  private String pageSize = "25";
 
  //????
  private String count ="0";
 
  //????
  private String pageIndex = "1";
 
  public void setPageSize(String pageSize) {
      this.pageSize = pageSize;
  }
 
   
  public void setCount(String count) {
      this.count = count;
  }
 
  public void setPageIndex(String pageIndex) {
      this.pageIndex = pageIndex;
  }
 
 
 
  public int doStartTag() throws JspException {
   
   
      StringBuffer sbPageHtml = new StringBuffer();
     
      int pageSize = getAttribute("page","pageSize", this.pageSize);
      DevLog.debug("pageSize:"+pageSize);
     
      int intCount = getAttribute("page","count",this.count);
      DevLog.debug("count:"+intCount);
     
      int pageIndex = getAttribute("page","pageIndex",this.pageIndex);
      DevLog.debug("page:"+pageIndex);
     
      if(pageSize == 0)pageSize = 25;
    
      int pageCount = (int)((intCount-1)/pageSize)+1;
      if(pageIndex == 1) {
          sbPageHtml.append("<div style='display:inline; text-align:center; padding-top:3px; margin:0 2px; height:20px; width:20px; background-color:#EEE; border:1px solid #000;'>|<</div>");
      } else {
          sbPageHtml.append("<button style='height:20px; margin:0 2px; width:20px; padding:0; border:1px solid black; background-color:#FFF;' οnclick=/"javascript:pageTo(1)/">|<</button>");  
      }
     
      if(pageCount <= 10){
          for(int i = 1; i <= pageCount; i++) {
              if (pageIndex != i) {
                  sbPageHtml.append("<button style='height:20px; margin:0 2px; width:20px; padding:0; border:1px solid black; background-color:#FFF;' οnclick=/"javascript:pageTo("+i+")/">"+i+"</button>");
              }else {
                  sbPageHtml.append("<div style='display:inline; text-align:center; padding-top:3px; margin:0 2px; height:20px; width:20px; background-color:#EEE; border:1px solid #000;'>"+i+"</div>");   
              }
          }
         
      } else {
         
          if(pageIndex-4 < 1){
              for(int i = 1; i <= 10; i++) {
                  if (pageIndex != i) {
                      sbPageHtml.append("<button style='height:20px; margin:0 2px; width:20px; padding:0; background-color:#FFF; border:1px solid black; background-color:#FFF;' οnclick=/"javascript:pageTo("+i+")/">"+i+"</button>");
                  }else {
                      sbPageHtml.append("<div style='display:inline; text-align:center; padding-top:3px; margin:0 2px; height:20px; width:20px; background-color:#EEE; border:1px solid #000;'>"+i+"</div>");  
                  }
              }
          }else if (pageIndex >= pageCount - 10) {
              for(int i = pageCount-9; i <= pageCount; i++) {
                  if (pageIndex != i) {
                      sbPageHtml.append("<button style='height:20px; margin:0 2px; width:20px; padding:0; border:1px solid black; background-color:#FFF;' οnclick=/"javascript:pageTo("+i+")/">"+i+"</button>");   
                  }else {
                      sbPageHtml.append("<div style='display:inline; text-align:center; padding-top:3px; margin:0 2px; height:20px; width:20px; background-color:#EEE; border:1px solid #000;'>"+i+"</div>");  
                  }
              }
          } else {
              for(int i = pageIndex-4; i <= pageIndex+5; i++) {
                  if (pageIndex != i) {
                      sbPageHtml.append("<button style='height:20px; margin:0 2px; width:20px; padding:0; border:1px solid black; background-color:#FFF;' οnclick=/"javascript:pageTo("+i+")/">"+i+"</button>");  
                  }else {
                      sbPageHtml.append("<div style='display:inline; text-align:center; padding-top:3px; margin:0 2px; height:20px; width:20px; background-color:#EEE; border:1px solid #000;'>"+i+"</div>");  
                  }
              }
          }
     
      }
     
      if(pageIndex == pageCount) {
          sbPageHtml.append("<div style='display:inline; text-align:center; padding-top:3px; margin:0 2px; height:20px; width:20px; background-color:#EEE; border:1px solid #000;'>>|</div>");
      } else {
          sbPageHtml.append("<button style='height:20px; margin:0 2px; width:20px; padding:0; border:1px solid black; background-color:#FFF;' οnclick=/"javascript:pageTo("+pageCount+")/">>|</button>");  
      }
     
      try {
        JspWriter out = pageContext.getOut();
        out.print(sbPageHtml.toString());
      } catch (IOException e) {
        e.printStackTrace();
      }
      return super.doStartTag();
     
  }
 
  /*
   * ?????EL?????
   */
  private int getAttribute(String tag, String attr, String _value) {
    int result = 0;
    try{
        String value = (String)ExpressionUtil.evalNotNull(tag, attr, _value, Object.class, this, pageContext);
        result = Integer.parseInt(value);
    } catch(NullAttributeException e) {
      DevLog.error(e);
    } catch (JspException e) {
      DevLog.error(e);
    } catch(NumberFormatException e){
      DevLog.error(e);
      return 0;
    } catch(Exception e) {
      DevLog.error(e);
    }
    return result;
  }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值