热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java超强分页标签演示

最近在做一个项目,用到了一个分页,于是动手写了个分页标签,先将代码贴出来,供大家交流,写的不好,请见谅!、以下是java标签类,继承自SimpleTagSupportpackagecom.lynn.

最近在做一个项目,用到了一个分页,于是动手写了个分页标签,先将代码贴出来,供大家交流,写的不好,请见谅!、

以下是java标签类,继承自SimpleTagSupport

package com.lynn.oa.tag;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;

import com.lynn.oa.util.Page;

public class PageTag extends SimpleTagSupport {

private Integer pageIndex;//当前页数
private Integer pageCount;//总页数
private String path;//页面链接
private String param;//传入的参数
//private List pageList;//显示的页号,一次显示10页,当前页位于中间第5的位置

@Override
public void doTag() throws JspException, IOException {

JspWriter out = this.getJspContext().getOut();//指定输入流,用于页面输出分页信息、
StringBuffer sb = new StringBuffer();//构建StringBuffer对象,用户拼接分页标签
sb.append(this.getPageIndex());
sb.append("/");
sb.append(this.getPageCount());
//显示当前页和总页数

//如果当前页在第一页,则首页和上一页没有超链接
if(this.pageIndex==1){
sb.append("首页 上一页 ");
}else{
sb.append("首页 ");
sb.append("上一页 ");

}
//下面的代码显示页码,当前页在中间位置,
if(this.getPageCount()<=10){
for (int i = 1; i <= this.getPageCount(); i++) {
//如果页数小于等于10页,则全部显示

if( i == pageIndex){//如果页码等于当前页,则该页数没有超链接
sb.append("[");
sb.append(i);
sb.append("] ");
}else{//否则给出超链接
sb.append("[");
sb.append(i);
sb.append("]
 ");

}

}
}else{//如果大于10页,则从当前页为中心只显示其中10页
int index=1;
if(this.pageIndex>4){//并且如果当前页大于4页,从当前页前4页开始显示10个页数
for (int j = this.pageIndex-4;j<=this.getPageCount(); j++) {
if(j==this.pageIndex){//如果页码等于当前页,则该页数没有超链接
sb.append("[");
sb.append(j);
sb.append("] ");
}else{//否则给定超链接
sb.append("[");
sb.append(j);
sb.append("]
 ");
}
index++;
if(index>10)//如果循环到10次则退出循环
break;
}


}else{
for (int i = 1; i <= this.getPageCount(); i++) {
//如果页数小于等于10页,则全部显示

if( pageIndex.equals(i)){//如果页码等于当前页,则该页数没有超链接
sb.append("[");
sb.append(i);
sb.append("] ");
}else{//否则给出超链接
sb.append("[");
sb.append(i);
sb.append("]
 ");

}
index++;
if(index>10)
break;

}
}


}
//如果当前页是最后一页,则末页和下一页没有超链接if(this.pageIndex.equals(this.pageCount)){sb.append("下一页 末页 ");}else{sb.append("下一页");sb.append(" 末页");}//System.out.prIntegerln(sb.toString());//一下代码拼接转到第几页的js代码sb.append("");sb.append(" 转到第页");sb.append("");sb.append("");sb.append("每页显示页");out.print(sb);}public Integer getPageIndex() {return pageIndex;}public void setPageIndex(Integer pageIndex) {this.pageIndex = pageIndex;}public Integer getPageCount() {return pageCount;}public void setPageCount(Integer pageCount) {this.pageCount = pageCount;}public String getPath() {return path;}public void setPath(String path) {this.path = path;}public String getParam() {return param;}public void setParam(String param) {this.param = param;}public static void main(String[] args) {PageTag pt = new PageTag();pt.setPageIndex(13);pt.setPageCount(13);//pt.setPageList(pageList)pt.setPath("index.jsp");pt.setParam("pageIndex");try {pt.doTag();} catch (JspException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

tld文件如下:



xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">

JSTL 1.1 core library
JSTL core
1.0
mt
http://www.lynn88.com/jsp/jstl/pagetag



Catches any Throwable that occurs in its body and optionally
exposes it.

page
com.lynn.oa.tag.PageTag
empty


pageIndex
true
true
java.lang.Integer



pageCount
true
true
java.lang.Integer



path
true
true
java.lang.String



param
true
true
java.lang.String





目前分页标签还在完善中。。。。有不懂的可以联系我。。。。
QQ:331509758,多多交流哈

以下是我下载链接路径:

java超炫分页标签

 


推荐阅读
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 怀疑是每次都在新建文件,具体代码如下 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
author-avatar
Dearlily2046_394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有