您的位置:首页 > 编程语言 > Java开发

Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。

2016-10-01 11:15 716 查看
1.首先定义了一个PageUtil的类,看了网上的很多教程,貌似都有一个这样的类,自己也定义了一个。在代码编写过程中发现这个类其实也没有那么大的作用,但是不去定义这个类,感觉好像缺少什么似得。(请高手解释下这个类的存在的意义。)

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐