Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。相关的知识,希望对你有一定的参考价值。
1.首先定义了一个PageUtil的类,看了网上的很多教程,貌似都有一个这样的类,自己也定义了一个。在代码编写过程中发现这个类其实也没有那么大的作用,但是不去定义这个类,感觉好像缺少什么似得。(请高手解释下这个类的存在的意义。)
1 package com.util; 2 3 public class PageUtil { 4 private int totalRows; //总的记录数 5 private int curPage; //当前页码 6 private int pageSize; //每页记录数 7 private int totalPages; 8 public PageUtil(int totalRows, int curPage, int pageSize) { 9 super(); 10 this.totalRows = totalRows; 11 this.curPage = curPage; 12 this.pageSize = pageSize; 13 } 14 public PageUtil(int totalRows, int pageSize) { 15 this.totalRows=totalRows; 16 this.pageSize=pageSize; 17 } 18 19 //总页数 20 public int getTotalPages() { 21 return totalRows%pageSize==0?totalRows/pageSize:totalRows/pageSize+1; 22 } 23 public int getTotalRows() { 24 return totalRows; 25 } 26 public void setTotalRows(int totalRows) { 27 this.totalRows = totalRows; 28 } 29 public int getCurPage() { 30 return curPage; 31 } 32 public void setCurPage(int curPage) { 33 this.curPage = curPage; 34 } 35 public int getPageSize() { 36 return pageSize; 37 } 38 public void setPageSize(int pageSize) { 39 this.pageSize = pageSize; 40 } 41 public void setTotalPages(int totalPages) { 42 this.totalPages = totalPages; 43 } 44 45 }
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()方法的代码。
1 public List<Student> queryList(int pageSize, int curPage) { 2 List<Student> list=new ArrayList<>(); 3 Student stu; 4 String sql="select * from classa limit "+pageSize*(curPage-1)+", "+pageSize; 5 try { 6 con=JDBC_Connection.getConnection(); 7 statement=con.createStatement(); 8 9 res=statement.executeQuery(sql); 10 while(res.next()){ 11 stu=new Student(res.getString(1), res.getString(2), res.getString(3), res.getDouble(4), res.getDouble(5)); 12 list.add(stu); 13 } 14 } catch (SQLException e) { 15 e.printStackTrace(); 16 } 17 try { 18 destory(); 19 } catch (Exception e) { 20 e.printStackTrace(); 21 } 22 return list; 23 }
3.前端页面自己不是太懂,随便写了展示jsp页面。
1 <body> 2 <% 3 int curPage=0; 4 5 if(session.getAttribute("curPage")!=null) 6 curPage=(int)session.getAttribute("curPage"); 7 %> 8 <form action="queryAll" method="post"> 9 <table width="98%" align="center" cellpadding="1" cellspacing="1" border="1"> 10 <tr align="center"> 11 <td width="5%">学号</td> 12 <td width="5%">姓名</td> 13 <td>学术贡献</td> 14 <td width="5%">scoreA</td> 15 <td width="5%">socreB</td> 16 </tr> 17 <s:iterator var="stu" value="#session.list" > 18 <tr> 19 <td>${stu.stuNo}</td> 20 <td>${stu.name}</td> 21 <td>${stu.detialInfo}</td> 22 <td>${stu.scoreA}</td> 23 <td>${stu.socreB}</td> 24 </tr> 25 </s:iterator> 26 27 </table> 28 29 <div align="right" style="color: red;"> 30 <a href="queryAll?curPage=<%=curPage-1%>">上一页</a>/ 31 <a href="queryAll?curPage=<%=curPage+1%>">下一页</a> 32 </div> 33 34 35 </form> 36 37 </body>
以上是关于Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。的主要内容,如果未能解决你的问题,请参考以下文章