java 分页标签_java超强分页标签演示

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

dd6941a35d2235b7e1f254aba33ad26b.gif

以下是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("function getPage(){");

sb.append("var pageIndex = document.getElementById('pageText').value;");

sb.append("window.location.href='");

sb.append(this.getPath());

sb.append("?");

sb.append(this.param);

sb.append("=");

sb.append("'+pageIndex;}");

sb.append("");

sb.append(" 转到第页");

sb.append("");

sb.append("

sb.append("$(function(){$('#pageSize').change(function(){var pageSize=$('#pageSize').val();window.location.href='");

sb.append(this.path);

sb.append("?");

sb.append("pageIndex=1&index='+pageSize});});");

sb.append("每页显示请选择");

sb.append("1");

sb.append("5");

sb.append("10页");

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 block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.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,多多交流哈

以下是我下载链接路径:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值