一、直接在前台页面分页
1,分别写实体bean跟PageBean,在PageBean写属性result,分别写get和set方法,它的类型为List,用来封装实体bean;
pageBean代码如下:
import java.util.List;
public class PageBean {
private int totalPage ;
private int size = 5;
private int currenPage ;
private List result;
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getCurrenPage() {
return currenPage;
}
public void setCurrenPage(int currenPage) {
this.currenPage = currenPage;
}
public List getResult() {
return result;
}
public void setResult(List result) {
this.result = result;
}
}
2、写数据库操作的dao类,查询语句类似于select top "+pb.getSize()+" * from user where userId not in(select top "+(pb.getCurrenPage()-1)*pb.getSize()+" userId from users order by userId asc) order by userId asc,将查询的结果放在PageBean中,一定要在数据库操作方法中设置setCurrentPage(page)属性,不然查询出的currentPage永远不是当前的page;
数据库操作代码如下:
public PageBean selectUser(int page){
PageBean pb = new PageBean();
pb.setCurrenPage(page);
con = this.getCon();
try {
pst=con.prepareStatement("select top "+pb.getSize()+" * from users where userId not in(select top "+(pb.getCurrenPage()-1)*pb.getSize()+" userId from users order by userId asc) order by userId asc");
rst = pst.executeQuery();
List list = new ArrayList();
while(rst.next()){
User user = new User();
user.setUserId(rst.getInt("userId"));
user.setUserName(rst.getString("userName"));
user.setUserPass(rst.getString("userPass"));
user.setUserSex(rst.getInt("userSex"));
user.setUserDate(rst.getString("userDate"));
user.setUserAddress(rst.getString("userAddress"));
user.setPhone(rst.getString("phone"));
list.add(user);
}
pb.setResult(list);
return pb;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}finally{
this.clossAll(rst, pst, sta, con);
}
}
3、写相应的biz类,在biz中调用dao中的查询方法;
4、写个过滤器,调用biz中的查询方法,并且设置page=1,用于在一开始的时候显示页面类容,如果去掉过滤器,刚进入页面的话就不会有类容显示;
5、写servlet调用biz的查询方法,跟filter不同的是它可以接受jsp页面传过来page的值,调用方法后,将结果放在PageBean中,并设置相应的attribute,如果使用request设置的话,在跳转页面时一定要用request.getRequestDispatcher("index.jsp") .forward(request, response)方法跳转;
6、在jsp页面引入jstl标签,通过el语言分别取的相应实体的值;写分页的连接
代码如下:
<input type="button" value="上一页" οnclick="trunPag(${requestScope.pb.currenPage-1})">
<input type="button" value="下一页" οnclick="trunPage(${requestScope.pb.currenPage+1})">
js代码如下:
<script type="text/javascript">
function trunPage(p){
window.location.href="UserServlet?action=show&page="+p;
}
</script>
ok!!!在页面分页搞定!!!