<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JSP自定義分頁標(biāo)簽TAG全過程

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:27:29
        文檔

        JSP自定義分頁標(biāo)簽TAG全過程

        JSP自定義分頁標(biāo)簽TAG全過程:首先我們需要在WEB-INF/tld/目錄下創(chuàng)建page.tld文件<xml version="1.0" encoding="ISO-8859-1"> <taglib> <tlib-version>1.0</tlib-version> <jsp-v
        推薦度:
        導(dǎo)讀JSP自定義分頁標(biāo)簽TAG全過程:首先我們需要在WEB-INF/tld/目錄下創(chuàng)建page.tld文件<xml version="1.0" encoding="ISO-8859-1"> <taglib> <tlib-version>1.0</tlib-version> <jsp-v

        首先我們需要在WEB-INF/tld/目錄下創(chuàng)建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; 
         
        /** 
        * 分頁處理標(biāo)簽 
        * 
        * @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("\\?", ";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 = ""; 
        // 如果已分頁;并且頁數(shù)小于等于要顯示的頁數(shù) 
        if (variablePage.totalPage > 1 && variablePage.totalPage <= variablePage.showPageNum) { 
        return displayAll(); 
        // 如果分頁數(shù):大于顯示的頁碼數(shù) 
        } else if (variablePage.totalPage > 1 && variablePage.totalPage > variablePage.showPageNum) { 
        if (variablePage.pageNo == 1) {// 當(dāng)前頁等于第一頁 
        return fromFirstPagePrint(); 
        } else if (variablePage.pageNo == variablePage.totalPage) {// 當(dāng)前頁等于最后一頁 
        return fromLastPagePrint(); 
        } else {// 如果當(dāng)前頁:即不是首頁也不是尾頁 
        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) {// 如果是當(dāng)前頁:不添加連接URL 
        printNo += (i + variablePage.split); 
        } else { 
        printNo += (buildA(variablePage, i) + variablePage.split); 
        } 
        } 
        } 
        } else { 
        return fromFirstPagePrint(); 
        } 
        } else {// 打印頁數(shù)不是偶數(shù)時(shí): 
        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) {// 如果是當(dāng)前頁:不添加連接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)); 
        } 
        } 
         
        /** 
        * 計(jì)算總頁數(shù) 
        */
        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(); 
         
        /** 
        * 實(shí)現(xiàn)從第一頁開始打印 
        * 
        * @return 
        */
        protected final String fromFirstPagePrint() { 
        StringBuffer buffer = new StringBuffer(100); 
        for (int i = 1; i <= variablePage.showPageNum; i++) { 
        if (i == variablePage.pageNo) {// 如果是當(dāng)前頁:不添加連接URL 
        buffer.append(i + variablePage.split); 
        } else { 
        buffer.append(buildA(variablePage, i) + variablePage.split); 
        } 
        } 
        return buffer.toString(); 
        } 
         
        /** 
        * 實(shí)現(xiàn)從最后一頁開始打印 
        * 
        * @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) {// 如果是當(dāng)前頁:不添加連接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(); 
        } 
        }
        /** 
        * 分頁基礎(chǔ)變量 
        * 
        * @description 
        * @DATE 2012-3-11下午10:34:00 
        */
        public class SimpleVariable { 
        /** 
        * 顯示頁碼 
        */
        protected int showPageNum = 10; 
        /** 
        * 連接URL 
        */
        protected String url = null; 
        /** 
        * 當(dāng)前頁碼 
        */
        protected int pageNo = 1; 
        /** 
        * 總頁碼 
        */
        protected int totalPage = 1; 
        /** 
        * 總條數(shù) 
        */
        protected int totalSum = 0; 
        /** 
        * 每頁顯示條數(shù) 
        */
        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; 
        } 
         
        }

        #需要使用該分頁標(biāo)簽的JSP 使用方法如下:

        JSP 頭部引入

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

        使用以下標(biāo)簽生成分頁HTML代碼

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

        更多JSP自定義分頁標(biāo)簽TAG全過程相關(guān)文章請關(guān)注PHP中文網(wǎng)!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JSP自定義分頁標(biāo)簽TAG全過程

        JSP自定義分頁標(biāo)簽TAG全過程:首先我們需要在WEB-INF/tld/目錄下創(chuàng)建page.tld文件<xml version="1.0" encoding="ISO-8859-1"> <taglib> <tlib-version>1.0</tlib-version> <jsp-v
        推薦度:
        標(biāo)簽: 標(biāo)簽 完整 分頁
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久精品无码精品免费专区| 国产AV日韩A∨亚洲AV电影| www成人免费观看网站| 免费v片在线观看无遮挡| 亚洲国产av玩弄放荡人妇| 四虎成人免费观看在线网址| 亚洲精品456人成在线| 日韩电影免费在线观看视频 | 午夜无码A级毛片免费视频| 亚洲成色WWW久久网站| 久9久9精品免费观看| 亚洲综合精品香蕉久久网97| 美女内射毛片在线看免费人动物| 亚洲精品中文字幕乱码影院| 麻豆视频免费观看| 亚洲国产精品成人AV在线| 全部免费a级毛片| 美女巨胸喷奶水视频www免费| 久久精品国产99精品国产亚洲性色| 久久精品毛片免费观看| 亚洲AV色吊丝无码| 四虎永久免费观看| 成人性生交大片免费看好| 亚洲白嫩在线观看| 国产麻豆免费观看91| 2022免费国产精品福利在线 | 毛片a级毛片免费观看免下载 | 精品在线观看免费| 中文字幕亚洲电影| 69免费视频大片| 老湿机一区午夜精品免费福利| 亚洲中文字幕不卡无码| 亚洲国产精品免费在线观看| 亚洲av永久无码一区二区三区| 亚洲伊人色欲综合网| 最近免费中文字幕大全视频| 抽搐一进一出gif免费视频| 中文字幕 亚洲 有码 在线| 相泽亚洲一区中文字幕| 国产大片免费网站不卡美女| 一区视频免费观看|