<&#63;xml version="1.0" encoding="ISO-8859-1"&#63;> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>page</sho " /> 91视频播放,黄色影视免费观看,亚洲福利影院

中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

JSP自定義分頁標簽TAG全過程

首先我們需要在WEB-INF/tld/目錄下創建page.tld文件

<?xml version="1.0" encoding="ISO-8859-1"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>page</short-name> <uri>http://www.kevin.com/taglibs/page</uri> <tag> <name>htmlPage</name> <tag-class>com.lss.common.tag.PageTag</tag-class> <body-content>JSP</body-content> <description>htmlPage Tag</description> <attribute> <name>pageNo</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>pageSize</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>totalSum</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>url</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>showPage</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>

package com.lss.common.tag; import Java.io.IOException; import Javax.servlet.jsp.JspException; import Javax.servlet.jsp.JspWriter; import Javax.servlet.jsp.tagext.TagSupport; import com.lss.common.page.HtmlPage; import com.lss.common.page.Page; import com.lss.common.page.VariablePage; /** * 分頁處理標簽 * * @description * @DATE 2012-3-11下午09:08:46 */ public class PageTag extends TagSupport { private int pageNo; private int pageSize = 10; private int totalSum; private int showPage = 10; private String url; public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalSum() { return totalSum; } public void setTotalSum(int totalSum) { this.totalSum = totalSum; } public int getShowPage() { return showPage; } public void setShowPage(int showPage) { this.showPage = showPage; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } @Override public int doEndTag() throws JspException { if (pageSize == 0) { return TagSupport.SKIP_PAGE;// 不顯示分頁 } else if (pageSize > totalSum) { return TagSupport.SKIP_BODY;// 不顯示分頁 } JspWriter out = pageContext.getOut(); try { if (url.indexOf(";jsessionid=") == -1) { if (url.indexOf("?") == -1) { url += ";jsessionid=" + pageContext.getSession().getId() + "?pageNo="; } else { url = url.replaceFirst("http://?", ";jsessionid=" + pageContext.getSession().getId() + "?"); if (url.indexOf("pageNo=") == -1) { url += "&pageNo="; } } } url = pageContext.getServletContext().getContextPath() + url; VariablePage variablePage = new VariablePage(pageNo, totalSum, pageSize, url); variablePage.setShowPageNum(showPage); Page page = new HtmlPage(variablePage); out.print(page.getFirstNo() + " " + page.getBackpageNum() + " " + page.pagination() + " " + page.getNextpageNum() + " " + page.getLastNo()); } catch (IOException ex) { ex.printStackTrace(); } return super.doEndTag(); } @Override public void release() { url = null; pageNo = 0; totalSum = 0; pageSize = 10; super.release(); } private static final long serialVersionUID = -2642907859641024483L; }

/** * HTML 分頁類 * * @description * @DATE 2012-3-11下午10:33:14 */ public class HtmlPage extends Page { public HtmlPage(VariablePage variablePage) { super(variablePage); } public String pagination() { String printNo = ""; // 如果已分頁;并且頁數小于等于要顯示的頁數 if (variablePage.totalPage > 1 && variablePage.totalPage <= variablePage.showPageNum) { return displayAll(); // 如果分頁數:大于顯示的頁碼數 } else if (variablePage.totalPage > 1 && variablePage.totalPage > variablePage.showPageNum) { if (variablePage.pageNo == 1) {// 當前頁等于第一頁 return fromFirstPagePrint(); } else if (variablePage.pageNo == variablePage.totalPage) {// 當前頁等于最后一頁 return fromLastPagePrint(); } else {// 如果當前頁:即不是首頁也不是尾頁 if (variablePage.showPageNum % 2 == 0) {// 可以平分頁碼 int print$No = variablePage.showPageNum / 2; if (variablePage.pageNo >= print$No) { int index$No = variablePage.pageNo - print$No; if (variablePage.pageNo + print$No >= variablePage.totalPage) { return fromLastPagePrint(); } else { if (index$No == 0) index$No = 1; for (int i = index$No; i < (variablePage.showPageNum + index$No); i++) { if (i == variablePage.pageNo) {// 如果是當前頁:不添加連接URL printNo += (i + variablePage.split); } else { printNo += (buildA(variablePage, i) + variablePage.split); } } } } else { return fromFirstPagePrint(); } } else {// 打印頁數不是偶數時: int print$No = variablePage.showPageNum / 2 + 1; if (variablePage.pageNo >= print$No && variablePage.pageNo + print$No < variablePage.totalPage) { int index$No = variablePage.pageNo - print$No + 1; for (int i = index$No; i < variablePage.showPageNum + index$No; i++) { if (i == variablePage.pageNo) {// 如果是當前頁:不添加連接URL printNo += (i + variablePage.split); } else { printNo += (buildA(variablePage, i) + variablePage.split); } } } else if (variablePage.pageNo <= print$No) {// 從第一頁開始 return fromFirstPagePrint(); } else { return fromLastPagePrint(); } } } return (printNo); } else { return "1"; } } public String getBackpageNum() { if (variablePage.pageNo <= 1) { return buildSpan("", variablePage); } else { return buildA("", (variablePage.url + (variablePage.pageNo - 1))); } } public String getNextpageNum() { if (variablePage.pageNo >= variablePage.totalPage) { return buildSpan("", variablePage); } else { return buildA("", variablePage.url + (variablePage.pageNo + 1)); } } public String buildSpan(String text, VariablePage variablePage) { return "<span style=/"color:gray;/">" + text + "</span>"; } public String buildA(String text, String url) { return "<a href=/"" + url + "/">" + text + "</a>"; } public String buildA(VariablePage variablePage, int num) { return ("<a href=/"" + variablePage.url + num + "/">" + num + "</a>"); } }
public abstract class Page { protected VariablePage variablePage; public Page(VariablePage variablePage) { this.variablePage = variablePage; calculateTotalPage(); } public int getStartIndex() { return (getValidpageNum() - 1) * variablePage.pageSize; } public String getBackpageNum() { if (variablePage.pageNo <= 1) { return buildSpan("", variablePage); } else { return buildA("", variablePage.getUrl() + (variablePage.pageNo - 1)); } } public String getNextpageNum() { if (variablePage.pageNo >= variablePage.totalPage) { return buildSpan("", variablePage); } else { return buildA("", variablePage.getUrl() + (variablePage.pageNo + 1)); } } /** * 計算總頁數 */ private void calculateTotalPage() { if (variablePage.totalSum % variablePage.pageSize == 0) { variablePage.totalPage = variablePage.totalSum / variablePage.pageSize; } else { variablePage.totalPage = variablePage.totalSum / variablePage.pageSize + 1; } if (variablePage.totalPage < variablePage.pageNo) { variablePage.pageNo = variablePage.totalPage; } else if (variablePage.pageNo < 1) { variablePage.pageNo = 1; } } protected String displayAll() { StringBuilder sBuilder = new StringBuilder(10); sBuilder.append(variablePage.split); for (int i = 1; i <= variablePage.totalPage; i++) { if (i == variablePage.pageNo) { sBuilder.append(i + variablePage.split); } else { sBuilder.append(buildA(variablePage, i) + variablePage.split); } } return sBuilder.toString(); } /** * 抽象出分頁方法 * * @return */ public abstract String pagination(); /** * 實現從第一頁開始打印 * * @return */ protected final String fromFirstPagePrint() { StringBuffer buffer = new StringBuffer(100); for (int i = 1; i <= variablePage.showPageNum; i++) { if (i == variablePage.pageNo) {// 如果是當前頁:不添加連接URL buffer.append(i + variablePage.split); } else { buffer.append(buildA(variablePage, i) + variablePage.split); } } return buffer.toString(); } /** * 實現從最后一頁開始打印 * * @return */ protected final String fromLastPagePrint() { StringBuffer buffer = new StringBuffer(100); int startPage = variablePage.totalPage - (variablePage.showPageNum - 1); for (int i = startPage; i <= variablePage.totalPage; i++) { if (i == variablePage.pageNo) {// 如果是當前頁:不添加連接URL buffer.append(i + variablePage.split); } else { buffer.append(buildA(variablePage, i) + variablePage.split); } } return buffer.toString(); } public String getFirstNo() { if (isExistsPagination()) { return buildA("首頁", variablePage.url + 1); } else { return buildSpan("首頁", variablePage); } } /** * 判斷是否存在分頁 * * @return */ private boolean isExistsPagination() { if (variablePage.totalSum > 1 && variablePage.totalPage > 1) { return true; } return false; } public String getLastNo() { if (isExistsPagination()) { return buildA("尾頁", variablePage.url + variablePage.totalPage); } else { return buildSpan("尾頁", variablePage); } } protected int getValidpageNum() { if (variablePage.totalPage < variablePage.pageNo) { return variablePage.pageNo = variablePage.totalPage; } else if (variablePage.pageNo < 1) { return variablePage.pageNo = 1; } else { return variablePage.pageNo; } } public VariablePage getPageContant() { return this.variablePage; } public abstract String buildSpan(String text, VariablePage variablePage); public abstract String buildA(String text, String url); public abstract String buildA(VariablePage variablePage, int num); public String printModifyPageSize(int pageSize){ StringBuilder builder=new StringBuilder(100); builder.append("每頁<input type='text' id='pageSize' style='width:20px' maxlength='2' name='pageSize'"); if(pageSize>0){ builder.append(" value='"+pageSize+"' "); } builder.append("/>條"); return builder.toString(); } }
/** * 分頁基礎變量 * * @description * @DATE 2012-3-11下午10:34:00 */ public class SimpleVariable { /** * 顯示頁碼 */ protected int showPageNum = 10; /** * 連接URL */ protected String url = null; /** * 當前頁碼 */ protected int pageNo = 1; /** * 總頁碼 */ protected int totalPage = 1; /** * 總條數 */ protected int totalSum = 0; /** * 每頁顯示條數 */ protected int pageSize = 10; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getTotalSum() { return totalSum; } public void setTotalSum(int totalSum) { this.totalSum = totalSum; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getShowPageNum() { return showPageNum; } public void setShowPageNum(int showPageNum) { this.showPageNum = showPageNum; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } } 
/** * 分頁變量 * * @description * @DATE 2012-3-11下午10:34:08 */ public class VariablePage extends SimpleVariable { protected String split = " "; protected String style = "class='page'"; public VariablePage(int pageNo, int totalSum, int pageSize, String url) { pageNo = pageNo < 1 ? 1 : pageNo; super.pageNo = pageNo; this.totalSum = totalSum; this.url = url; this.pageSize = pageSize; } public VariablePage(int pageNum, int totalSum, String url) { pageNum = pageNum < 1 ? 1 : pageNum; super.pageNo = pageNum; this.totalSum = totalSum; this.url = url; } public String getSplit() { return split; } public void setSplit(String split) { this.split = split; } }

#需要使用該分頁標簽的JSP 使用方法如下:

JSP 頭部引入

<%@taglib uri="http://www.kevin.com/taglibs/page" prefix="page" %>

使用以下標簽生成分頁HTML代碼

<page:htmlPage pageNo="${pageNo}" url="your_url" totalSum="${totalSum}" showPage="10" pageSize="12"/>

jsp技術JSP自定義分頁標簽TAG全過程,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产日韩一区二区 | 秋霞a级毛片在线看 | 亚洲伊人久久综合 | 一区二区三区视频在线免费观看 | 美美女高清毛片视频免费观看 | 看片一区 | 久久精品中文字幕 | 嫩草黄色影院 | 国产精品区一区二区三 | 亚洲欧美视频 | 人碰人操| 无码日韩精品一区二区免费 | 天堂一区在线观看 | 亚洲精品一 | 日韩中文在线视频 | 久久1区| 在线啊v | 午夜欧美一区二区三区在线播放 | 日韩男人天堂 | 日韩黄色小视频 | 国产999精品久久久久久 | 成人在线网 | 国产一区三区在线 | 夜操| 久久久久久一区 | 精品亚洲一区二区 | 日韩欧美国产精品一区二区三区 | 精品欧美一区二区精品久久久 | 视频三区| 国产美女高潮 | 亚洲精品日韩在线 | 欧美国产精品一区二区三区 | 综合视频在线 | 日日操夜夜操天天操 | 天天操人人干 | 视频一区欧美 | 91精品国产欧美一区二区成人 | 久久久久久久91 | 男女国产视频 | 欧美精品一区二区三区一线天视频 | 成人精品一区二区三区 |