J2EE如何实现分页
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要为大家展示了"J2EE如何实现分页",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"J2EE如何实现分页"这篇文章吧。先说明一下J2EE实现分页所
千家信息网最后更新 2024年11月26日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安全错误
数据库的锁怎样保障安全
银行做软件开发前景
hyp服务器图片
用网络安全为主题的画
广东企业软件开发哪家便宜
dell t700服务器
数字货币网络技术架构
打造私人nas服务器机柜
网络安全板块股票信息
虚拟主机怎么打包数据库
名词解释网络技术
BMJ数据库检索规则
通信专业计算机网络技术
2021年网络安全公司财报
软件开发安全解决方案
最快dns服务器
网络安全巡回赛高端吗
蜻蜓fm数据库错误
华东交通大学计算机网络技术
传奇服务器哪个人多
服务器 合作
jar 数据库打包
系统管理软件开发流程
查询代码数据库
江西省网络安全技能大赛题目
洛阳城市管理局缴费服务器繁忙
微服务多数据库之间调用事务
在虚拟机上部署数据库
软件开发在深圳待遇怎么样
软件开发市场总监岗位职责
南京西门子软件开发工资待遇