strut2中分页的实现的初体验

实现构想:把每一页封装成一个对象(PagerBean),点击“下一页”、“上一页”、“首页”、“末页”传递不同的参数值,返回一PagerBean对象。
1、 PagerBean.java
属性:
private int pageSize;每页5条数据
private int currentPage = 1; // 当前页
private int totalPages = 0; // 总页数
private int totalRows = 0; // 总数据数
private int pageStartRow = 0;// 每页的起始数
private int pageEndRow = 0; // 每页显示数据的终止数
private int startRow=0; //当前页在数据库中的起始行
private boolean hasNextPage = false; // 是否有下一页
private boolean hasPreviousPage = false; // 是否有前一页
方法:
public PagerBean();
public PagerBean(int totalRows,int pageSize);
public PagerBean(int currentPage,int startRow,int pageEndRow,int pageStartRow,int totalRows,int pageSize,int totalPages);
public void first();//首页
public void previous();//上一页
public void next();//下一页
public void last();//末页
public int getCurrentPage() ;
public void setCurrentPage(int currentPage) ;
public int getTotalPages() ;
public void setTotalPages(int totalPages);
public int getPageSize();
public void setPageSize(int pageSize) ;
public int getTotalRows() ;
public void setTotalRows(int totalRows);
public int getPageStartRow();
public void setPageStartRow(int pageStartRow);
public int getPageEndRow();
public void setPageEndRow(int pageEndRow) ;
public boolean isHasNextPage();
public void setHasNextPage(boolean hasNextPage) ;
public boolean isHasPreviousPage();
public void setHasPreviousPage(boolean hasPreviousPage);
public int getStartRow() ;
public void setStartRow(int startRow) ;

2、 界面代码:
<td colspan="3" align="center">
第<s:property value="thispage.getCurrentPage()" />页/
共<s:property value="thispage.getTotalPages()" />页
<s:url id="url_first" value="showbooks.action">
<s:param name="currentPage" value="1"></s:param>
</s:url>
<s:url id="url_pre" value="showbooks.action">
<s:param name="currentPage" value="2"></s:param>
</s:url>
<s:url id="url_next" value="showbooks.action">
<s:param name="currentPage" value="3"></s:param>
</s:url>
<s:url id="url_last" value="showbooks.action">
<s:param name="currentPage" value="4"></s:param>
</s:url>
<s:a href="%{url_first}">首页</s:a>
<s:a href="%{url_pre}">上一页</s:a>
<s:a href="%{url_next}">下一页</s:a>
<s:a href="%{url_last}">末页</s:a>
</td>
3、 Action代码:
//实现分页
public List<Book> getShowPage(){
HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
HttpSession session=request.getSession();
List<Book> booklist=null;
PagerBLO pb=new PagerBLO();
BookBLO bb=new BookBLO();
totalRows=bb.getTotal_BLO();
if(session.getAttribute("pB")==null){
pB=new PagerBean(totalRows,pageSize);//pram1:总记录数;pram2:每页记录数
session.setAttribute("pB", pB);
}
else{
pB=(PagerBean) session.getAttribute("pB");
}
if(currentPage==1){
pB.first();
}
if(currentPage==2){
pB.previous();
}
if(currentPage==3){
pB.next();
}
if(currentPage==4){
pB.last();
}
booklist=pb.getBooksByPager(pB);
return booklist;
}
4、 Server相关方法:
public List<Book> getBooksByPager(PagerBean page){
List<Book> books=null;
PagerDAO pd=new PagerDAO();
books=pd.getAnyBook(page.getPageSize(), page.getStartRow());
return books;
}
5、 Dao层代码
public List<Book> getAnyBook(int pageSize,int startRow){
List<Book> anyBooks = new ArrayList();
Session session = HibernateSessionFactory.getSession();
String hql = "from Book";
Query q=session.createQuery(hql);
q.setFirstResult(startRow);
q.setMaxResults(pageSize);
anyBooks = q.list();
return anyBooks;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值