package com.newvideo.web.tag; import java.io.IOException; import java.util.Iterator; import java.util.Map; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class PageTag extends TagSupport { /** * */ private static final long serialVersionUID = 1L; private String url; // 链接地址 private int pageindex;// 当前页 private int pagesize; // 页大小 private int totalLines; // 总记录条数 private Map params;// 附加参数 private String preimage; private String nextimage; private String pagebg; private String inputbg; private String gobg; public int getPageindex() { return pageindex; } public void setPageindex(int pageindex) { this.pageindex = pageindex; } public String getPreimage() { return preimage; } public void setPreimage(String preimage) { this.preimage = preimage; } public String getNextimage() { return nextimage; } public void setNextimage(String nextimage) { this.nextimage = nextimage; } public String getPagebg() { return pagebg; } public void setPagebg(String pagebg) { this.pagebg = pagebg; } public String getInputbg() { return inputbg; } public void setInputbg(String inputbg) { this.inputbg = inputbg; } public String getGobg() { return gobg; } public void setGobg(String gobg) { this.gobg = gobg; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public int getPagesize() { return pagesize; } public void setPagesize(int pagesize) { this.pagesize = pagesize; } public int getTotalLines() { return totalLines; } public void setTotalLines(int totalLines) { this.totalLines = totalLines; } public Map getParams() { return params; } public void setParams(Map params) { this.params = params; } private int totalPages() { return totalLines % pagesize == 0 ? totalLines / pagesize : totalLines / pagesize + 1; } // 获取完整的URL private String getAllUrl(int pageIndex) { String baseUrl = url; baseUrl += "?pageIndex=" + pageIndex; if (params != null) { Iterator its = params.keySet().iterator(); while (its.hasNext()) { String key = its.next(); String value = params.get(key); baseUrl += "&" + key + "=" + value; } } return baseUrl; } @Override public int doStartTag() throws JspException { int totalPage = totalPages(); String style = "background:url(" + pagebg + ");width:38px;height:38px;text-align:center;line-height:38px;float:left;margin-left:1px;border:0;"; String shenYuStyle = "float:left;margin-left:10px;height:38px;line-height:38px;"; String jumpText = "float:left;margin-left:107px;height:38px;line-height:38px;"; String inputStyle = "border:0;background:url(" + pagebg + ");width:36px;height:36px;text-align:center;line-height:38px;float:left;margin-left:10px;"; String content = "
" + "
" + "
" + "
" + "
当前页:" + pageindex + "/" + totalPage + " 跳转到:
" + "
" + "
Go
"; if (pageindex < 1) pageindex = 1; if (pageindex > totalPage) pageindex = totalPage; String c = "
" + "
"; if (totalPage < 6) { for (int i = 0; i < totalPage; i++) { c += "
"; } } else { if (Math.abs(pageindex) < 3 || Math.abs(pageindex - totalPage) < 3) { if (Math.abs(pageindex) <= 3) { for (int i = 0; i < 5; i++) { c += "
"; } } else { for (int i = 0; i < 5; i++) { c += "
"; } } } else { for (int i = 0; i < 5; i++) { c += "
"; } } } c += "
" + "
当前页:" + pageindex + "/" + totalPage + " 跳转到:
" + "
" + "
Go
"; System.out.println(pageindex + "-" + totalLines + "-" + pagesize + "-" + url + "-" + preimage + "-" + nextimage + "-" + pagebg + "-" + inputbg + "-" + gobg + "-" + pageContext.getRequest().getLocalAddr()); JspWriter out = this.pageContext.getOut(); try { out.print(""); out.print(c); } catch (IOException e) { e.printStackTrace(); } return EVAL_BODY_INCLUDE; } @Override public int doEndTag() throws JspException { // TODO Auto-generated method stub return super.doEndTag(); } }