知识大全 我的struts分页算法的实现
Posted 属性
篇首语:弓背霞明剑照霜,秋风走马出咸阳。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 我的struts分页算法的实现相关的知识,希望对你有一定的参考价值。
说到分页算法 一般WEB开发都会用到 我只是在我的实现技术上用了struts框架 其实原理都一样的 看了网上相当多的分页算法 有对的也有好多是错的 更有好多是不太优化的 还有以前自己在augmentum做的一个分页算法 总结了一些不足 决定重新再写一个分页算法 首先 应该写个bean来记录存储一些页面的属性分页大致需要如下属性 private int currentPage = ; // 当前页 private int totalPages = ; // 总页数 private int pageRecorders = ;// 每页 条数据 private int totalRows = ; // 总数据数 private int pageStartRow = ;// 每页的起始数 private int pageEndRow = ; // 每页显示数据的终止数 private boolean hasNextPage = false; // 是否有下一页 private boolean hasPreviousPage = false; // 是否有前一页 private int nextPage = ;//下一页的页码 private int previousPage = ;//上一页的页码然后这些属性之间是有联系的 我们可以在构造函数的时候就初始化一些属性有两种方法 一 根据总的页数 (假设当前页为 ) public PageBean(int totalRows) this totalRows = totalRows; this currentPage = ; hasPreviousPage = false; if ((totalRows % pageRecorders) == ) totalPages = totalRows / pageRecorders; else totalPages = totalRows / pageRecorders + ; if (totalRows >= pageRecorders) hasNextPage = true; nextPage = ; this pageEndRow = pageRecorders; else this pageEndRow = totalRows; hasNextPage = false; nextPage = ; this pageStartRow = ; previousPage = ; 然后在按下一页或者上一页的时候需要如下函数处理 public void nextPage() if(hasNextPage == true) currentPage = currentPage + ; if ((currentPage ) > ) hasPreviousPage = true; else hasPreviousPage = false; if (currentPage >= totalPages) hasNextPage = false; this nextPage = currentPage; else hasNextPage = true; nextPage = currentPage+ ; this pageStartRow = (currentPage ) * pageRecorders; if(hasNextPage == true) this pageEndRow = pageStartRow + ; else this pageEndRow =this totalPages; previousPage = currentPage ; public void previousPage() if(hasPreviousPage == true) currentPage = currentPage ; if (currentPage == ) currentPage = ; if (currentPage >= totalPages) hasNextPage = false; else hasNextPage = true; nextPage = currentPage + ; if ((currentPage ) > ) hasPreviousPage = true; previousPage = currentPage ; else hasPreviousPage = false; previousPage = currentPage; this pageStartRow = (currentPage ) * pageRecorders; if(hasNextPage == true) this pageEndRow = pageStartRow + ; else this pageEndRow =this totalPages;
在HTML中按下一页或者上一页的时候有如下代码 <logic:equal name= page property= hasNextPage value= true ><:link page= /List do?action=nextPage >nextPage</:link></logic:equal><logic:equal name= page property= hasPreviousPage value= true ><:link page= /List do?action=previousPage >PreviousPage</:link></logic:equal>然后在Action中作如下处理 String currentPage = request getParameter( currentPage ); HttpSession session = request getSession(); EmployeeForm employeeForm = (EmployeeForm) form; String queryString = null; String queryCon = null; String action = employeeForm getAction(); List list = new ArrayList(); PageBean pb = null; EmployeeDao employeeDao = new EmployeeDao(); if(action == null || action equals( null )) int totalRows = employeeDao getTotalRows(); pb = new PageBean(totalRows); session removeAttribute( page ); queryString = employeeForm getQueryString(); queryCon = employeeForm getQueryCon(); session setAttribute( queryString queryString); session setAttribute( queryCon queryCon); list = employeeDao getAllEmployee(queryString queryCon String valueOf(pb getPageStartRow()) String valueOf(pb getPageRecorders())); else if(action equals( nextPage )) queryString = (String)session getAttribute( queryString ); queryCon = (String)session getAttribute( queryCon ); employeeForm setQueryString(queryString); employeeForm setQueryCon(queryCon); pb = (PageBean)session getAttribute( page ); pb nextPage(); list = employeeDao getAllEmployee(queryString queryCon String valueOf(pb getPageStartRow()) String valueOf(pb getPageRecorders())); else if(action equals( previousPage )) queryString = (String)session getAttribute( queryString ); queryCon = (String)session getAttribute( queryCon ); employeeForm setQueryString(queryString); employeeForm setQueryCon(queryCon); pb = (PageBean)session getAttribute( page ); pb previousPage(); list = employeeDao getAllEmployee(queryString queryCon String valueOf(pb getPageStartRow()) String valueOf(pb getPageRecorders())); pb description(); session setAttribute( page pb); request setAttribute( admin admin ); request setAttribute( employee list); return mapping findForward( showlist ); 然后在数据库查询中有如下代码 /***查询总记录数*/ public int getTotalRows() int totalRows = ; String sql = select count(*) from employee ;//假设是员工表 Database db = new Database(); ResultSet rs = db executeQuery(sql); try while (rs next()) String id = (String) rs getString( ); totalRows = Integer parseInt(id); catch (SQLException e) e printStackTrace(); db close(); return totalRows; /**查询每一页需要查询的页码*/public List getAllEmployee(String queryString String queryCon String startRow String num) List list = new ArrayList(); String sql = null; if (queryString == null || queryString equals( )) sql = select * from employee dept + where dept Id = employee deptId + order by employee id asc + limit +startRow+ +num; else sql = select * from employee dept + where dept Id = employee deptId order by employee + queryString + + queryCon + limit +startRow+ +num; Employee employee = null; Database db = new Database(); ResultSet rs = db executeQuery(sql); try while (rs next()) String id = (String) rs getString( employee id ); String name = (String) rs getString( employee name ); String deptId = (String) rs getString( employee deptId ); String deptName = (String) rs getString( dept deptName ); employee = new Employee(); employee setId(id); employee setName(name); employee setDeptId(deptId); employee setDeptName(deptName); list add(employee); catch (SQLException e) e printStackTrace(); db close(); return list; 这里我用了hibernate进行数据库操作 你也可以用jdbc进行操作 情况类似
cha138/Article/program/Java/ky/201311/28793相关参考
漫谈解决Struts分页显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 学习Struts已经
本案主要功能是完成数据集的分页显示示例代码如下 PageInfo类定义分页信息 /******************programbegin***********************
Struts2分页实现源码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
浅析HibernateStruts分页 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hiber
一个高效简洁的Struts分页方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在网上看了几个
知识大全 浅谈Struts分页中的Hibernate如何实现
浅谈Struts分页中的Hibernate如何实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Struts中如何实现查询结果分页显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! messa
浅谈Struts2分页的实现与代码实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 关于Str
用Struts2实现列表显示和分页功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以下是在前
“俄罗斯存储过程”的改良版 CREATEprocedurepagination(@pagesizeint页面大小如每页存储条记录@pageindexint当前页码)assetnocountonb