- 浏览: 31132 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
让翻页变的更简单
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 843Maven库: http://repo2.maven.o ... -
maven
2014-01-19 22:53 0mavenhttp://maven.apache.org/ ... -
JTA Transactions
2013-12-24 14:14 1424JTA : Java Transaction API 界定 ... -
asdf
2013-07-02 17:26 0学习网址 基于MVC的JavaScript Web富应用 ... -
JSON Ajax异步请求实现select联动
2013-02-27 15:17 1790$('#selDivision').change ... -
language
2012-11-30 16:02 0有人用skype吗?我是benjameno.irwin,加 ... -
自定义拦截器
2012-11-19 16:28 689可以做用户验证和请求日志打印 拦截器java类 ... -
java中 set,list,array(集合与数组)相互转换
2012-11-19 11:20 689public static Object[] List2Arr ... -
Itext, java export to PDF file
2013-02-27 14:37 862http://sourceforge.net/project ... -
标签赋值value内单引号解决方法
2012-10-15 14:17 883单引号放在里面即可解决 $('#selProdName ... -
jquery 获取select option text
2012-10-15 14:15 791var ProdName= $("select[na ... -
联动select (java,js)
2012-10-08 21:57 1021$(function () { $("# ... -
dom 解析xml字符串
2012-02-05 22:00 3243dom 解析xml字符串 import java.io ... -
doc4j 解析xml字符串
2012-02-05 21:26 1711doc4j 解析xml字符串 import ja ... -
Java中正则表达式验证日期格式
2011-11-25 13:45 2180public class DateCheck { ... -
jquery get id val from callback
2011-11-21 22:18 955jquery get id val from callback ... -
禁止回车键提交form表单
2011-11-11 14:09 1587$(document).ready(function(){ ... -
hibernate 缓存详解
2011-10-10 13:59 544hibernate 缓存详解 -
js 表单验证集锦
2011-09-22 16:27 508js 表单验证 先加这几个,以后有时间再跟进 ... -
js常用效果实例
2011-09-10 13:02 610js常用效果实例
相关推荐
本主题将深入探讨“jsp自定义分页标签”,这是一种在网页展示大量数据时非常实用的功能,它可以有效地帮助用户浏览和操作数据。 一、JSP自定义标签基础 JSP自定义标签是JSP技术的一部分,它允许开发者创建自己的...
Java自定义分页标签是Java Web开发中一种高效、可复用的方法,它允许开发者创建自己的标签库,用于处理分页逻辑,提高代码的可读性和可维护性。本篇文章将详细探讨如何在Java中实现一个自定义分页标签。 首先,理解...
本文将详细讲解如何实现一个很不错的自定义分页标签,以供开发者们参考和使用。 首先,我们要了解分页的基本原理。分页通常涉及到两个主要部分:前端显示和后端数据处理。前端负责展示当前页码、总页数以及翻页链接...
- 假设我们的标签处理类名为`PaginationTag`,TLD文件为`pagination.tld`,那么在JSP中使用如下: ```jsp <%@ taglib prefix="pg" uri="/WEB-INF/tags/pagination.tld" %> ... <pg:pagination current="${...
而自定义分页标签是提高开发效率、增强代码可读性和复用性的一种常见手段。本篇将详细介绍如何在MyBatis中实现自定义的JSTL标签来完成分页查询。 首先,我们要理解分页的基本概念。分页是当数据量较大时,为了提高...
在本例中,"fenyeTag"可能是自定义分页标签库的名字,用于在JSP页面上展示分页链接。 要实现自定义标签,你需要遵循以下步骤: 1. **创建TLD文件**:TLD(Tag Library Descriptor)文件定义了自定义标签的行为、...
在这个例子中,`mytags:pagination`就是我们的自定义分页标签,`currentPage`、`totalRecords`和`itemsPerPage`是传递给标签的参数。 通过这种方式,我们能够创建一个高度可定制的分页组件,可以适应不同的应用场景...
创建一个继承自`org.apache.struts2.views.jsp.ui.TagSupport`的类,例如`PaginationTag.java`。在这个类中,我们需要定义处理分页所需的各种属性,如每页记录数(pageSize)、总记录数(totalCount)、当前页数...
本项目提供了一个用于分页的自定义标签,适用于那些需要在网页上进行数据分页展示的应用。 首先,我们要理解什么是JSP自定义标签。在JSP中,自定义标签是通过TLD(Tag Library Descriptor)文件定义的,它允许...
本教程将详细介绍如何在Struts2中自定义分页标签。 在传统的网页开发中,分页通常通过服务器端脚本或JavaScript实现,但在Struts2框架中,我们可以创建自定义标签来完成这一任务,使得代码更加模块化和易于维护。...
本项目结合了Java、Hibernate、JSP以及TLD(Tag Library Descriptor)技术,实现了一个高效、易懂且实用的自定义标签分页解决方案。下面我们将详细探讨这些技术以及它们在分页中的应用。 首先,Java作为后端编程...
而在Java Web开发中,利用JSP(Java Server Pages)技术进行网页开发时,自定义分页标签能够更加灵活高效地实现分页功能。本文将详细介绍如何自定义一个JSP分页标签,并通过具体的代码示例来演示其实现过程。 #### ...
在这个“java自定义标签分页”主题中,我们将深入探讨如何利用自定义标签来实现高效且易于维护的分页功能。 首先,自定义标签的定义通常涉及以下组件: 1. TLD(Tag Library Descriptor)文件:这是定义自定义标签...
1. 创建自定义标签:我们需要创建一个继承自`javax.servlet.jsp.tagext.TagSupport`的类,例如`PaginationTag`。在这个类中,我们可以定义属性如`currentPage`和`pageSize`,用于存储当前页数和每页大小。同时,我们...
JSP自定义分页标签是一种在Java Server Pages中实现分页功能的自定义标签,它通过TLD文件(标签库描述文件)来定义和描述标签的属性和行为,实现分页显示的功能。以下是关于JSP自定义分页标签全过程的一些详细知识点...
在Java Web开发中,分页是常见的功能,用于处理...通过这种方式,开发者可以方便地自定义分页样式和逻辑,提升项目的可维护性和可扩展性。在实际项目中,我们可以根据具体需求调整标签属性,以适应各种不同的分页场景。
标题"自定义标签分页非常简单"意味着我们将探讨如何通过自定义标签来实现一个简洁且易于使用的分页功能。 自定义标签在JSP 2.0及以上版本中引入,它基于JSP Tag Library(JSTL)规范。自定义标签不是HTML标签,而是...
在JSP页面中,我们可以这样使用自定义分页标签: ```jsp <%@ taglib prefix="mypagination" uri="/WEB-INF/tlds/pagination.tld" %> <mypagination:pagination recordsPerPage="10" totalRecords="${messageCount}...