热门标签 | 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超炫分页标签

 


推荐阅读
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社区 版权所有