spring+hibernate+pager taglib实现分页(底层也做了分页)(二)

现在说中间的控制层。

在Struts的FORM中,增加private int pageDisplay = 10; 属性,并增加对应的setter和getter方法。这个属性是用来设置每页显示的记录数,10是默认值,可以根据实际情况进行设置。

在Struts的ACTION层,增加一个方法,代码如下
java 代码
  1. packagecom.excellence.struts.action;
  2. importjava.util.List;
  3. importjavax.servlet.http.HttpServletRequest;
  4. importjavax.servlet.http.HttpServletResponse;
  5. importorg.apache.struts.action.Action;
  6. importorg.apache.struts.action.ActionForm;
  7. importorg.apache.struts.action.ActionForward;
  8. importorg.apache.struts.action.ActionMapping;
  9. importcom.excellence.page.Service;
  10. importcom.excellence.struts.form.CheckForm;
  11. publicclassCheckActionextendsAction{
  12. publicActionForwardexecute(
  13. ActionMappingmapping,
  14. ActionFormform,
  15. HttpServletRequestrequest,
  16. HttpServletResponseresponse){
  17. setSubPage(request,form);
  18. returnmapping.findForward("result");
  19. }
  20. privatevoidsetSubPage(HttpServletRequestrequest,ActionFormform){
  21. CheckFormthisForm=(CheckForm)form;
  22. Stringcontent=thisForm.getContent();//查询条件中的内容
  23. Serviceservice=newService();
  24. //拿到每页要显示的记录数
  25. intpageSize=thisForm.getPageDisplay();
  26. request.setAttribute("pageSize",pageSize+"");
  27. //拿到目前要显示得页数
  28. intpageNumber=1;
  29. StringstrPageNumber=request.getParameter("page");
  30. if(strPageNumber!=null)
  31. pageNumber=Integer.parseInt(strPageNumber);
  32. //计算要显示的页数得第一条记录的位置
  33. intstart=0;
  34. start=(pageNumber-1)*pageSize;
  35. Listresult=service.findByCondition("fromSubpagewherecontentlike?orderbycontent",newObject[]{content},start,pageSize);
  36.   Listcounts=service.findByCondition("selectcount(*)fromSubpagewherecontentlike?",newObject[]{content});
  37. intcount=Integer.parseInt(counts.get(0).toString());
  38. request.setAttribute("count",count+"");//总条数
  39. //设置总页数
  40. inttotalPage=count%pageSize==0?count/pageSize:(count/pageSize+1);
  41. request.setAttribute("totalPage",totalPage+"");
  42. request.setAttribute("result",result);
  43. if(result.size()==0)
  44. request.setAttribute("result",null);
  45. }
  46. }
主要就是增加了一个私有的方法private void setSubPage(HttpServletRequest request,ActionForm form)。

你可能感兴趣的:(apache,spring,Hibernate,struts,servlet)