首页 > 代码库 > Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
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 //test38 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="http://www.mamicode.com/#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="http://www.mamicode.com/queryAll?curPage=">上一页</a>/31 <a href="http://www.mamicode.com/queryAll?curPage=">下一页</a>32 </div>33 34 35 </form>36 37 </body>
Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。