J2EE如何实现分页
发表于:2026-11-07 作者:千家信息网编辑
千家信息网最后更新 2026年11月07日,这篇文章主要为大家展示了"J2EE如何实现分页",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"J2EE如何实现分页"这篇文章吧。先说明一下J2EE实现分页所
千家信息网最后更新 2026年11月07日J2EE如何实现分页
这篇文章主要为大家展示了"J2EE如何实现分页",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"J2EE如何实现分页"这篇文章吧。
先说明一下J2EE实现分页所需要用到的文件Pager.java (不用说,肯定是保存分页信息的了),PagerHelper.java(处理页面信息) ,PageTag.java(自定义分页标签),还有一个是pagetag.tld文件,分页标签描述文件.
先帖出这四个文件的源码
1、Pager.java
package org.awc.commns; /** * 保存分页信息的类 * * @author Administrator * */ public class Pager { private int totalRows; // 总行数 private int pageSize; // 每页显示的行数 private int currentPage; // 当前页号 private int totalPages; // 总页数 private int startRow; // 当前页在数据库中的起始行 private String linkUrl; // 要跳转的URL public Pager() { } public Pager(int _totalRows,int _pageSize) { totalRows = _totalRows; pageSize = _pageSize; totalPages = totalRows / pageSize; int mod = totalRows % pageSize; if (mod > 0) { totalPages++; } currentPage = 1; startRow = 0; } //此处略去属性的getter和setter方法 /** * 设定hibernate查询的起始行数 * * @param currentPage */ public void setStart(int currentPage) { this.currentPage = currentPage; startRow = (currentPage - 1) * pageSize; } }2、PagerHelper.java
import javax.servlet.http.*; /** * 控制分页的类 * * @author Administrator * */ public class PagerHelper { public static Pager getPager(HttpServletRequest httpServletRequest, int totalRows,int pageSize) { // 定义pager对象,用于传到页面 Pager pager = new Pager(totalRows,pageSize); // 从Request对象中获取当前页号 String currentPage = httpServletRequest.getParameter("cpage"); // 如果当前页号为空,表示为***查询该页 // 如果不为空,则刷新pager对象,输入当前页号等信息 if (currentPage != null) { pager.setStart(Integer.parseInt(currentPage)); } else { pager.setStart(1); } return pager; } }3、PageTag.java
import java.io.IOException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class PageTag extends TagSupport { /** * */ private static final long serialVersionUID = 1L; private Pager pager; public int doStartTag() { try { JspWriter out = pageContext.getOut(); out.print("第 " + pager.getCurrentPage() + " 页/共 " + (pager.getTotalPages()) + " 页"); if (pager.getCurrentPage() == 1) { out.print("[最首页]"); out.print("[上一页]"); } if (pager.getCurrentPage() != 1) { out.print("[< a href='" + pager.getLinkUrl() + "&cpage=1'>最首页< /a>]"); out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" + (pager.getCurrentPage() - 1) + "'>上一页< /a>]"); } for (int i = pager.getCurrentPage() - 3; i < = pager .getCurrentPage() + 3; i++) { if (i < = 0 || i > pager.getTotalPages()) { continue; } if (i == pager.getCurrentPage()) { out .print("[< span style='color:#FF0000; border: 1px solid #cccccc; font-weight:bold; width:15px;text-align: center;'> " + i + " < /span>]"); } else { out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" + i + "'> " + i + " < /a>]"); } } if (pager.getCurrentPage() == pager.getTotalPages() || pager.getTotalPages() == 0) { out.print("[下一页]"); out.print("[最末页]"); } if (pager.getCurrentPage() != pager.getTotalPages() && pager.getTotalPages() != 0) { out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" + (pager.getCurrentPage() + 1) + "'>下一页< /a>]"); out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" + (pager.getTotalPages()) + "'>最末页< /a>]"); } out.flush(); } catch (IOException ex) { ex.printStackTrace(); } return super.SKIP_BODY; } public int doEndTag() { return super.EVAL_PAGE; } public void setPager(Pager pager) { this.pager = pager; } public Pager getPager() { return pager; } }4、pagetag.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 xmlns="http://java.sun.com/JSP/TagLibraryDescriptor"> < tlib-version>1.0< /tlib-version> < jsp-version>1.2< /jsp-version> < short-name>My Tags< /short-name> < tag> < name>page< /name> < tag-class>org.awc.commns.PageTag< /tag-class>< !-- PageTag.java具体项目路径--> < body-content>empty< /body-content> < attribute> < name>pager< /name> < required>true< /required> < rtexprvalue>true< /rtexprvalue> < type>org.awc.commns.Pager< /type>< !-- Pager.java具体项目路径--> < /attribute> < /tag> < /taglib>
以上四个文件为固定,其余部分代码示例如下:
Action或者Servlet部分:
public ActionForward display(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { //不相关代码略去 int totalRows;// 记录总行数 Pager pager = null; // 页面信息 int pageSize = 15; try { totalRows = tservice.getTotalRowsBySubType(tsid); // 获取指定主题总行数 pager = PagerHelper.getPager(request, totalRows, pageSize); // 初始化分页对象 pager.setLinkUrl("index.asp?method=display&stid=" + tsid); // 设置跳转路径 request.setAttribute("pb", pager); // 将分页信息保存在Request对象 topicList = tservice.findTopicByStid(tsid, pager); // 根据分页信息查询指定的主题 request.setAttribute("results", topicList); return mapping.findForward("index"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return mapping.findForward("fail"); }JSP 页面部分:
1、在页面开始部分导入标签库文件 :< %@ taglib prefix="page" uri="WEB-INF/pageTld/pagetag.tld"%> --具体路径视具体项目而定
2、在需要加入分页信息的部分加上< page:page pager="${pb}" /> 即可。
以上是"J2EE如何实现分页"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
信息
对象
文件
部分
页面
内容
总行
标签
篇文章
查询
主题
代码
路径
上一
首页
学习
帮助
起始
不用
不用说
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
云南咖啡
精品咖啡豆
互联网科技垄断
互联网科技排名
上游互联网科技
互联网科技咨询
互联网教育科技公司vipkid
随着互联网科技发展
栖莱科技互联网股份有限公司
允成互联网科技有限公司融资
互联网在线教育科技创业
威龙国际互联网科技公司
世界互联网领先科技成果获奖
卓翼科技产业互联网合作
无锡工业互联网科技有限公司
张召忠谈中国互联网科技
富国互联网科技002692
北京天晋互联网科技有限公司
美国五大互联网科技公司市值多少
朗涯互联网科技
互联网科技logo设计
科技大学互联网
特约风豹互联网科技为什么扣费
上海科技产业互联网平台
领航科技大厦互联网公司
浙南科技城互联网大厦招聘
互联网科技股为什么大涨
互联网安防科技感
六子台科技互联网展会