- 浏览: 30021 次
- 性别:
- 来自: 上海
文章分类
最新评论
让翻页变的更简单
paginationTag.java
package com.utils; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import com.constant.Constants; public class PaginationTag extends BodyTagSupport{ private static final long serialVersionUID = 3195861338194897318L; private String tagName; private Integer curPage; private Integer totalRowCount; public String getTagName() { return tagName; } public void setTagName(String tagName) { this.tagName = tagName; } public Integer getCurPage() { return curPage; } public void setCurPage(Integer curPage) { if(curPage==null || "".equals(curPage) || curPage==0){ curPage = 1; } this.curPage = curPage; } public Integer getTotalRowCount() { return totalRowCount; } public void setTotalRowCount(Integer totalRowCount) { this.totalRowCount = totalRowCount; } private Integer pageSize = Constants.PAGINATION_PAGESIZE; private Integer totalPage(){ Integer totalPage = 0; if(totalRowCount>0 && totalRowCount<=pageSize){ totalPage = 1; }else if(totalRowCount>pageSize){ if(totalRowCount%pageSize>0){ totalPage = totalRowCount/pageSize+1; }else{ totalPage = totalRowCount/pageSize; } } return totalPage; } private Integer nextPage(){ Integer nextPage = curPage+1; if(nextPage>totalPage()){ nextPage = totalPage(); } return nextPage; } private Integer prePage(){ Integer prePage = curPage-1; if(prePage<1){ prePage = 1; } return prePage; } private Integer getStartRow(Integer goPage){ Integer startRow = (goPage-1)*pageSize; return startRow; } @Override public int doStartTag() throws JspException{ try { StringBuffer sb = new StringBuffer(); sb.append("<div class=\"pagebar\" style=\"line-height:12px;text-align:center;\">"); if(curPage!=1){ sb.append("<a href=\"javascript:"); sb.append(tagName); sb.append("("); sb.append(getStartRow(prePage())); sb.append(","); sb.append(prePage()); sb.append(")\"><span>Previous</span></a>"); }else{ sb.append("<span>Previous</span>"); } sb.append(" < "); if(curPage-3>=1){ for(int i=3;i>0;i--){ sb.append("<a href=\"javascript:"); sb.append(tagName); sb.append("("); sb.append(getStartRow(curPage-i)); sb.append(","); sb.append(curPage-i); sb.append(")\"><span class=\"pnlink\">"); sb.append(curPage-i); sb.append("</span></a>"); } }else{ for(int i=1;i<curPage;i++){ sb.append("<a href=\"javascript:"); sb.append(tagName); sb.append("("); sb.append(getStartRow(i)); sb.append(","); sb.append(i); sb.append(")\"><span class=\"pnlink\">"); sb.append(i); sb.append("</span></a>"); } } sb.append("<span class=\"curPage\">"); sb.append(curPage); sb.append("</span>"); if(curPage<totalPage()-3){ for(int i=1;i<4;i++){ sb.append("<a href=\"javascript:"); sb.append(tagName); sb.append("("); sb.append(getStartRow(curPage+i)); sb.append(","); sb.append(curPage+i); sb.append(")\"><span class=\"pnlink\">"); sb.append(curPage+i); sb.append("</span></a>"); } }else{ for(int i=1;i<=totalPage()-curPage;i++){ sb.append("<a href=\"javascript:"); sb.append(tagName); sb.append("("); sb.append(getStartRow(curPage+i)); sb.append(","); sb.append(curPage+i); sb.append(")\"><span class=\"pnlink\">"); sb.append(curPage+i); sb.append("</span></a>"); } } sb.append(" > "); if(curPage.equals(totalPage())){ sb.append("<span>Next</span>"); }else{ sb.append("<a href=\"javascript:"); sb.append(tagName); sb.append("("); sb.append(getStartRow(nextPage())); sb.append(","); sb.append(nextPage()); sb.append(")\"><span>Next</span></a>"); } sb.append("</div>"); if(totalRowCount>0){ pageContext.getOut().write(sb.toString()); } } catch (IOException e) { e.printStackTrace(); } return BodyTagSupport.EVAL_BODY_INCLUDE; } @Override public int doEndTag() throws JspException{ return BodyTagSupport.EVAL_BODY_INCLUDE; } }
myTag.tld
<!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.1</jsp-version> <short-name>epp</short-name> <tag> <name>pagination</name> <tag-class>com.utils.PaginationTag</tag-class> <body-content>Jsp</body-content> <attribute> <name>tagName</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.String</type> </attribute> <attribute> <name>curPage</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.Integer</type> </attribute> <attribute> <name>totalRowCount</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.Integer</type> </attribute> </tag> </taglib>
Js function name should be equal to tagName.
function turnPageFunction(startRow,curPage){ $("#startRow").val(startRow); $("#curPage").val(curPage); window.document.forms[0].submit(); }
jsp invoke
<%@ taglib prefix="epp" uri="/WEB-INF/EppTag.tld"%> <epp:pagination totalRowCount="${totalRow}" tagName="turnPageFunction" curPage="${curPage}"></epp:pagination>
action method:
private Integer curPage; private Integer totalRow; public Integer getCurPage() { return curPage; } public void setCurPage(Integer curPage) { this.curPage = curPage; } public Integer getTotalRow() { return totalRow; } public void setTotalRow(Integer totalRow) { this.totalRow = totalRow; } public String findPageData(){ Integer startRow = 0; String strStartRow = this.getRequest().getParameter("startRow"); if(strStartRow!=null && !"".equals(strStartRow)){ startRow = Integer.parseInt(strStartRow); } totalRow = demoService.countTotalRow(); list = demoService.findPageData(startRow, startRow+Constants.PAGINATION_PAGESIZE); this.getRequest().setAttribute("curPage", curPage); return SUCCESS; }
发表评论
-
Maven命令
2014-04-20 20:35 811Maven库: http://repo2.maven.o ... -
maven
2014-01-19 22:53 0mavenhttp://maven.apache.org/ ... -
JTA Transactions
2013-12-24 14:14 1365JTA : Java Transaction API 界定 ... -
asdf
2013-07-02 17:26 0学习网址 基于MVC的JavaScript Web富应用 ... -
JSON Ajax异步请求实现select联动
2013-02-27 15:17 1767$('#selDivision').change ... -
language
2012-11-30 16:02 0有人用skype吗?我是benjameno.irwin,加 ... -
自定义拦截器
2012-11-19 16:28 649可以做用户验证和请求日志打印 拦截器java类 ... -
java中 set,list,array(集合与数组)相互转换
2012-11-19 11:20 653public static Object[] List2Arr ... -
Itext, java export to PDF file
2013-02-27 14:37 816http://sourceforge.net/project ... -
标签赋值value内单引号解决方法
2012-10-15 14:17 827单引号放在里面即可解决 $('#selProdName ... -
jquery 获取select option text
2012-10-15 14:15 743var ProdName= $("select[na ... -
联动select (java,js)
2012-10-08 21:57 963$(function () { $("# ... -
dom 解析xml字符串
2012-02-05 22:00 3208dom 解析xml字符串 import java.io ... -
doc4j 解析xml字符串
2012-02-05 21:26 1660doc4j 解析xml字符串 import ja ... -
Java中正则表达式验证日期格式
2011-11-25 13:45 2135public class DateCheck { ... -
jquery get id val from callback
2011-11-21 22:18 931jquery get id val from callback ... -
禁止回车键提交form表单
2011-11-11 14:09 1535$(document).ready(function(){ ... -
hibernate 缓存详解
2011-10-10 13:59 520hibernate 缓存详解 -
js 表单验证集锦
2011-09-22 16:27 472js 表单验证 先加这几个,以后有时间再跟进 ... -
js常用效果实例
2011-09-10 13:02 583js常用效果实例
相关推荐
自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签...
WinForm自定义分页控件完整实例,导入可用
android自定义分页控件,内有详细注释。简洁明了。 使用方便。
将swiper的分页器pagination自定义成时间轴。滑动页面时,时间轴的相应时间会被选中。只是提供一个思路,也可仿照例子自己设计属于自己的分页器样式。
本文实例为大家分享了swiper自定义分页器的样式代码,供大家参考,具体内容如下 js主要代码 pagination: { // 自定义分页器的类名----必填项 el: '.custom-pagination', // 是否可点击----必填项 clickable: ...
主要介绍了JSP自定义分页标签TAG全过程,比较实用,需要的朋友可以参考下
js-swiper-分页标签加进度条-自定义位置加进度条
jQueryPager(JQuery分页插件pagination实现Ajax分页) CSDN犀利助互群60168829
Juqery分页插件支持首页尾页页数自定义格式修改4.0bug
Pagination, javaFx 源代码分页功能较少,该代码组件支持首页、上一页、下一页、尾页、跳转、每页数量等操作,同时展示总数据量,使用教程搜索博客:《JavaFx 自定义封装 Pagination 分页组件、控件》
在Winform设计中,表格数据常常用到换页的情况,然而winform中没有自带的分页控件,这里就自定义了个分页控件,个人觉得还是很全面的了
Jquery 无刷新分页 jquery.pagination.js 带数据库 提交Handler请求数据 AJAX
java最简单的分页和pagination分页.两种模式都包含在项目中。dao层是用mybatis整合的
自定义标签分页,学习分页技术,更要学会自定义标签分页
jquery分页插件pagination
bootstrap分页控件pagination在asp.net mvc的使用,采用了bt的日历控件、分页控件、AJAX获取后台分页数据
HTML分页插件pagination源码,简单大气,带样式,直接套用就可以了,所有源代码都在了,路过不能错过。
js自定义分页插件 文件目录: css --pagination.css --pagination.min.css --pagination.scss js --pagination.js --pagination.ts index.html tsconfig.json
jquery pagination 分页组件 jquery pagination 分页组件 jquery pagination 分页组件 官网 https://pagination.js.org/index.html 文档 https://pagination.js.org/docs/index.html
jQuery分页插件Pagination是一款提供多种数据源方式,众多的配置参数,回调函数,显示控制等,还提供了5套内置的分页条皮肤。