自定义表单提交筛选分页怎么做_自定义分页标签 - 程小员的个人页面 - OSCHINA - 中文开源技术交流社区...

分页实现类,继承TagSupport,doStartTag方法内拼凑分页的html。

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.TagSupport;

public class FromPageTag extends TagSupport {

private static final long serialVersionUID = -3662095604913922414L;

private int pageNo;//页码

private int pageSize;//每页数量

private int totalRecord;//总记录数

@Override

public int doStartTag() throws JspException {

int tag = totalRecord % pageSize;

if (tag > 0) {

tag = 1;

}

int endPageNo = totalRecord / pageSize + tag;

StringBuilder sb = new StringBuilder(

"

");

// 前一页

sb.append("

if (pageNo > 1) {

sb.append("οnclick=\"_turnPage(").append(pageNo - 1).append(")\"");

}

sb.append(">上一页

");

// 第一页

sb.append(addPageCell(1));

if (endPageNo > 1) {

sb.append(addPageCell(2));

}

if (endPageNo > 2) {

sb.append(addPageCell(3));

}

if (pageNo > 5) {

sb.append("…");

}

// 中间页码

for (int i = pageNo - 1; i <= pageNo + 1; i++) {

if (i <= 3) {

continue;

}

if (i >= endPageNo - 2) {

continue;

}

sb.append(addPageCell(i));

}

if (pageNo 

sb.append("…");

}

//后面页码

if (endPageNo - 2 > 3) {

sb.append(addPageCell(endPageNo - 2));

}

if (endPageNo - 1 > 3) {

sb.append(addPageCell(endPageNo - 1));

}

if(endPageNo > 3) {

sb.append(addPageCell(endPageNo));

}

//最后一页

sb.append("

if(pageNo 

sb.append("οnclick=\"_turnPage(").append(pageNo+1).append(")\"");;

}

sb.append(">下一页

");

try {

if (sb != null) {

JspWriter out = pageContext.getOut();

out.print(sb);

}

} catch (Exception e) {

throw new JspException("错误");

}

return super.doStartTag();

}

private String addPageCell(int number) {

StringBuilder sb = new StringBuilder();

sb.append("

if (pageNo != number) {

sb.append("\" οnclick=\"_turnPage(").append(number).append(")\"");

} else {

sb.append(" current\"");

}

sb.append(">").append(number).append("

");

return sb.toString();

}

public int getTotalRecord() {

return totalRecord;

}

public void setTotalRecord(int totalRecord) {

this.totalRecord = totalRecord;

}

public int getPageNo() {

return pageNo;

}

public void setPageNo(int pageNo) {

this.pageNo = pageNo;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

}

2. 在WEB-INF/tlds内增加 formPage.tld

taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"

"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

1.0

1.2

mytag

formPage

com.common.FromPageTag

empty

pageNo

true

true

pageSize

true

true

totalRecord

true

true

3. web.xml中定义

/tld/page

/WEB-INF/tlds/formPage.tld

4. 使用

function _turnPage(pageNo) {

document.getElementById("pageNo").value=pageNo;

document.getElementById("pageSize").value=20;

document.getElementById("myForm").submit();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值