无为清净楼资源网 Design By www.qnjia.com
首先我们需要在WEB-INF/tld/目录下创建page.tld文件
<"1.0" encoding="ISO-8859-1""htmlcode">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() + ""; } 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 = ""; // 如果已分页;并且页数小于等于要显示的页数 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 "htmlcode"><%@taglib uri="http://www.kevin.com/taglibs/page" prefix="page" %>使用以下标签生成分页HTML代码
<page:htmlPage pageNo="${pageNo}" url="your_url" totalSum="${totalSum}" showPage="10" pageSize="12"/>
标签:
分页标签,tag
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月10日
2024年11月10日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]