Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
2016-10-01 11:15
716 查看
1.首先定义了一个PageUtil的类,看了网上的很多教程,貌似都有一个这样的类,自己也定义了一个。在代码编写过程中发现这个类其实也没有那么大的作用,但是不去定义这个类,感觉好像缺少什么似得。(请高手解释下这个类的存在的意义。)
2. 自己根据所需的功能提供了一个QueryList的action类。
这里把前台所需的信息放在session里面,提供给前台使用。控制逻辑上当访问首页之前和尾页之后的页面的时候,自动定位到首页和尾页。
附上queryList()方法的代码。
3.前端页面自己不是太懂,随便写了展示jsp页面。
package com.util; public class PageUtil { private int totalRows; //总的记录数 private int curPage; //当前页码 private int pageSize; //每页记录数 private int totalPages; public PageUtil(int totalRows, int curPage, int pageSize) { super(); this.totalRows = totalRows; this.curPage = curPage; this.pageSize = pageSize; } public PageUtil(int totalRows, int pageSize) { this.totalRows=totalRows; this.pageSize=pageSize; } //总页数 public int getTotalPages() { return totalRows%pageSize==0?totalRows/pageSize:totalRows/pageSize+1; } public int getTotalRows() { return totalRows; } public void setTotalRows(int totalRows) { this.totalRows = totalRows; } public int getCurPage() { return curPage; } public void setCurPage(int curPage) { this.curPage = curPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } }
2. 自己根据所需的功能提供了一个QueryList的action类。
1 package com.action; 2 3 import java.util.List; 4 5 import javax.servlet.http.HttpSession; 6 7 import org.apache.struts2.ServletActionContext; 8 9 import com.bean.Student; 10 import com.daoImpl.DaoImpl; 11 import com.opensymphony.xwork2.ActionSupport; 12 import com.util.PageUtil; 13 14 public class QueryAll extends ActionSupport { 15 private final static int pageSize=8; 16 private DaoImpl daoImpl=new DaoImpl(); 17 private PageUtil pageUtil; 18 private int rows; 19 20 private int curPage; 21 public void setCurPage(int curPage) { 22 this.curPage = curPage; 23 } 24 25 public String execute() throws Exception { 26 rows=daoImpl.getTotalRows(); 27 pageUtil=new PageUtil(rows, pageSize); 28 if(curPage>pageUtil.getTotalPages()){ 29 pageUtil.setCurPage(pageUtil.getTotalPages()); 30 } 31 else if(curPage>0) { 32 pageUtil.setCurPage(curPage); 33 }else { 34 pageUtil.setCurPage(1); 35 } 36 37 //test 38 List<Student> studetnsInfo=daoImpl.queryList(pageUtil.getPageSize(), pageUtil.getCurPage()); 39 System.out.println(studetnsInfo.size()); 40 41 HttpSession session=ServletActionContext.getRequest().getSession(); 42 43 session.setAttribute("list", studetnsInfo); 44 session.setAttribute("curPage", pageUtil.getCurPage()); 45 46 return SUCCESS; 47 } 48 50 }
这里把前台所需的信息放在session里面,提供给前台使用。控制逻辑上当访问首页之前和尾页之后的页面的时候,自动定位到首页和尾页。
附上queryList()方法的代码。
public List<Student> queryList(int pageSize, int curPage) { List<Student> list=new ArrayList<>(); Student stu; String sql="select * from classa limit "+pageSize*(curPage-1)+", "+pageSize; try { con=JDBC_Connection.getConnection(); statement=con.createStatement(); res=statement.executeQuery(sql); while(res.next()){ stu=new Student(res.getString(1), res.getString(2), res.getString(3), res.getDouble(4), res.getDouble(5)); list.add(stu); } } catch (SQLException e) { e.printStackTrace(); } try { destory(); } catch (Exception e) { e.printStackTrace(); } return list; }
3.前端页面自己不是太懂,随便写了展示jsp页面。
<body> <% int curPage=0; if(session.getAttribute("curPage")!=null) curPage=(int)session.getAttribute("curPage"); %> <form action="queryAll" method="post"> <table width="98%" align="center" cellpadding="1" cellspacing="1" border="1"> <tr align="center"> <td width="5%">学号</td> <td width="5%">姓名</td> <td>学术贡献</td> <td width="5%">scoreA</td> <td width="5%">socreB</td> </tr> <s:iterator var="stu" value="#session.list" > <tr> <td>${stu.stuNo}</td> <td>${stu.name}</td> <td>${stu.detialInfo}</td> <td>${stu.scoreA}</td> <td>${stu.socreB}</td> </tr> </s:iterator> </table> <div align="right" style="color: red;"> <a href="queryAll?curPage=<%=curPage-1%>">上一页</a>/ <a href="queryAll?curPage=<%=curPage+1%>">下一页</a> </div> </form> </body>
相关文章推荐
- Android生日礼物(含拼图游戏,背景音乐,自动拨号等功能实现)--根据代码规范修改注释以及定义
- JAVA_WEB项目之Lucene检索框架实现增删查改的代码优化以及分页功能实现
- GridView分页的实现,自己定义的分页样式功能
- ViewPager实现自动翻页功能 --转载出处找不到了,根据自己的理解写个随笔方便以后的记忆以及代码的共享,感谢给我启发的那位高手--第一次写博客哈
- JAVA分页实现,用java写一个分页功能的代码
- (jsp 和 servlet功能篇) jsp+servlet+javaBean 实现分页代码(mysql 数据库)
- 利用颠倒TOP分页算法实现分页功能的思考(java 代码实现)
- java ssm框架实现分页功能的示例代码(oracle)
- 分页技术原理与实现(二)——Java+Oracle代码实现
- 问题1:java中没有实现这种“byte a = 0xB2 --> String b = “B2””转换的简单实现需要自己实现。 答:自己编写的转换函数,思路将byte的高低4位分开,分别转换为对应的字符然后合成返回的字符串。 java 代码 1.
- 分页技术原理与实现(二)——Java+Oracle代码实现
- JAVA中实现消息提示功能代码
- oracle实现存储过程的分页并用java代码调用存储过程
- 用java代码实现native2ascii的功能
- 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++) [分享]
- java根据properties配置文件来实现功能模块的动态切换
- 用java实现病毒功能的代码
- 实现 iPhone 电子书的分页显示功能的代码
- java分页代码实现1
- 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++) [分享]