jsp自定义分页标签page
日常工作项目里,分页是十分常见的,网上也有大把的分页插件,性能和美观程度都比较不错,但是有时候并不一定能满足我们的需求,因为大部分的分页插件都是在客户端分页,有的甚至需要你一次性查询出所有的数据放入内存,在内存进行分页,而且分也时,只是单纯分页只接受页码,并不能传入本页的某些参数到另一个页面做重新查询的条件,进而重新分页。www.zzzyk.com根据jsp自定义分页标签的特性,我们可以定制自己的分页标签,更加方便开发中的使用,关于jsp的自定义标签,上篇已有详细的介绍说明,该页最下面的 分页栏,即是自定义的jsp的标签,我这里给的名字是<page:page pager="${requestScope.pb}" />,即只要引入它即可出现该分页栏,由于为了方便,样式可能不太好看,这个大家可以自己去调节。下面我们开始实现这个page标签,首先新建一个web项目,并引入struts必要地几个jar包。新建一个包,取名为com.page.util,将page的三个实现类放在下面,分别是Pager.java,PagerHelp.java,PageTag.java,它们的实现分别如下:Pager.java:Java代码/*** 保存分页信息的类***/public class Pager {private int totalRows; // 总行数private int pageSize = 10; // 每页显示的行数private int currentPage; // 当前页号private int totalPages; // 总页数private int startRow; // 当前页在数据库中的起始行private String linkUrl; // 要跳转的URLpublic Pager() {}public Pager(int _totalRows) {totalRows = _totalRows;totalPages = totalRows / pageSize;int mod = totalRows % pageSize;if (mod > 0) {totalPages++;}currentPage = 1;startRow = 0;}/*** 设定查询的起始行数** @param currentPage*/public void setStart(int currentPage) {this.currentPage = currentPage;startRow = (currentPage - 1) * pageSize;}public int getTotalRows() {return totalRows;}public void setTotalRows(int totalRows) {this.totalRows = totalRows;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getCurrentPage() {return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;}public int getTotalPages() {return totalPages;}public void setTotalPages(int totalPages) {this.totalPages = totalPages;}public int getStartRow() {return startRow;}public void setStartRow(int startRow) {this.startRow = startRow;}public String getLinkUrl() {return linkUrl;}public void setLinkUrl(String linkUrl) {this.linkUrl = linkUrl;}}PagerHelp.java:Java代码import javax.servlet.http.HttpServletRequest;/*** 控制分页的类***/public class PagerHelper {public static Pager getPager(HttpServletRequest req,int totalRows) {// 定义pager对象,用于传到页面Pager pager = new Pager(totalRows);// 从Request对象中获取当前页号String currentPage = req.getParameter("cpage");// 如果当前页号为空,表示为首次查询该页// 如果不为空,则刷新pager对象,输入当前页号等信息if (currentPage != null) {pager.setStart(Integer.parseInt(currentPage));} else {pager.setStart(1);}return pager;}}PageTag.java:Java代码import java.io.IOException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.TagSupport;/*** 标签类 用于分页查询**/public class PageTag extends TagSupport {/**&nbs补充:Web开发 , Jsp ,
上一个:Struts2——action间的跳转
下一个:JSP原理笔记(二)
- 更多JS疑问解答:
- 几个验证11位手机号码格式的js代码
- js把图片转换成 base64代码
- js把base代码转换成图片
- JS 将 base64编码的图片转化为图片文件
- js中的定时器
- js如何获得FCKeditor控件的值
- 用js限制投票的cookie .目前设置的为:<input type="" class="" onclick="'window.location...
- JS验证,这块“牛皮”反复修改都不能实现
- 在JS中使用DOM模型
- 如何用JS 获取本地文件夹的文件列表
- js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?
- 求实现自动生成图片缩略图的JS代码
- JS脚本网页问题
- js,代码中"object"和"Object"区别?
- js+flash实现网页图片切换效果,出现边框,单击激活此控件。