struts2+hibernate 分页

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

总听别人说分页分页的,自己也来试试,网上查了查资料,集百家所长后又自己发挥了一下.

直接上代码:

操作数据: PageDao.java

  1. packagecom.enorth.lichen.youth.dao;
  2. importjava.util.ArrayList;
  3. importjava.util.List;
  4. importorg.hibernate.Session;
  5. importcom.enorth.lichen.youth.hi.HibernateUtils;
  6. publicclassPageDao{
  7. publicListpageQuery(intpageSize,intpageNow){
  8. Listlist=newArrayList();
  9. Sessionsession=null;
  10. try{
  11. session=HibernateUtils.getSession();
  12. session.beginTransaction();
  13. //得到每页显示的LevTwoInFuUser的对象的集合list
  14. list=session.createQuery("fromLevTwoInFuUserl2ifwherel2if.permission=201orderbyl2if.l2infid")
  15. .setFirstResult(pageNow*pageSize-pageSize)
  16. .setMaxResults(pageSize)
  17. .list();
  18. session.getTransaction().commit();
  19. }catch(Exceptione){
  20. e.printStackTrace();
  21. session.getTransaction().rollback();
  22. }finally{
  23. HibernateUtils.closeSession(session);
  24. }
  25. returnlist;
  26. }
  27. publicintpageTotle(intpageSize,intpageNow){
  28. inti=0;
  29. Sessionsession=null;
  30. try{
  31. session=HibernateUtils.getSession();
  32. session.beginTransaction();
  33. //i是查询结果条数
  34. i=session.createQuery("fromLevTwoInFuUserl2ifwherel2if.permission=201orderbyl2if.l2infid")
  35. .list()
  36. .size();
  37. //用总的结果条数对每页显示的条数取余,得到总页数
  38. i=i%pageSize==0?i/pageSize:i/pageSize+1;
  39. session.getTransaction().commit();
  40. }catch(Exceptione){
  41. e.printStackTrace();
  42. session.getTransaction().rollback();
  43. }finally{
  44. HibernateUtils.closeSession(session);
  45. }
  46. returni;
  47. }
  48. }

Action处理: PageQueryAction.java

  1. packagecom.enorth.lichen.youth.act;
  2. importjava.util.List;
  3. importjava.util.Map;
  4. importjavax.servlet.http.HttpServletRequest;
  5. importorg.apache.struts2.interceptor.ServletRequestAware;
  6. importorg.apache.struts2.interceptor.SessionAware;
  7. importcom.enorth.lichen.youth.dao.PageDao;
  8. importcom.opensymphony.xwork2.ActionSupport;
  9. publicclassPageQueryActionextendsActionSupportimplementsServletRequestAware,SessionAware{
  10. privateHttpServletRequestrequest;
  11. privateListlist;
  12. privateintpageNow=1;//初始化为1,默认从第一页开始显示
  13. privateintpageSize=3;//每页显示3条记录
  14. privateintpageTotle=1;//总页数
  15. privatePageDaopageDao=newPageDao();
  16. publicListgetList(){
  17. returnlist;
  18. }
  19. publicvoidsetList(Listlist){
  20. this.list=list;
  21. }
  22. publicintgetPageNow(){
  23. returnpageNow;
  24. }
  25. publicvoidsetPageNow(intpageNow){
  26. this.pageNow=pageNow;
  27. }
  28. publicintgetPageSize(){
  29. returnpageSize;
  30. }
  31. publicvoidsetPageSize(intpageSize){
  32. this.pageSize=pageSize;
  33. }
  34. publicintgetPageTotle(){
  35. returnpageTotle;
  36. }
  37. publicvoidsetPageTotle(intpageTotle){
  38. this.pageTotle=pageTotle;
  39. }
  40. @Override
  41. publicStringexecute()throwsException{
  42. //得到每页显示的对象的集合list
  43. list=pageDao.pageQuery(pageSize,pageNow);
  44. //得到总页数pageTotle
  45. pageTotle=pageDao.pageTotle(pageSize,pageNow);
  46. returnSUCCESS;
  47. }
  48. @Override
  49. publicvoidsetServletRequest(HttpServletRequestrequest){
  50. //TODOAuto-generatedmethodstub
  51. this.request=request;
  52. }
  53. @Override
  54. publicvoidsetSession(Maparg0){
  55. //TODOAuto-generatedmethodstub
  56. }
  57. }

查询分页页面: page.jsp

  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%>
  2. <%
  3. Stringpath=request.getContextPath();
  4. StringbasePath=request.getScheme()+"://"
  5. +request.getServerName()+":"+request.getServerPort()
  6. +path+"/";
  7. %>
  8. <%@taglibprefix="s"uri="/struts-tags"%>
  9. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  10. <html>
  11. <head>
  12. <SCRIPTtype="text/javascript"src="js/calendar.js"></SCRIPT>
  13. <basehref="<%=basePath%>">
  14. <title>分页</title>
  15. <metahttp-equiv="pragma"content="no-cache">
  16. <metahttp-equiv="cache-control"content="no-cache">
  17. <metahttp-equiv="expires"content="0">
  18. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  19. <metahttp-equiv="description"content="Thisismypage">
  20. <!--
  21. <linkrel="stylesheet"type="text/css"href="styles.css">
  22. -->
  23. </head>
  24. <body>
  25. <tableborder="1">
  26. <tr>
  27. <th>
  28. 用户编号
  29. </th>
  30. <th>
  31. 真实姓名
  32. </th>
  33. <th>
  34. 注册时间
  35. </th>
  36. </tr>
  37. <!--迭代查询-->
  38. <s:iteratorvalue="list">
  39. <tr>
  40. <td>
  41. <s:propertyvalue="l2infid"/>
  42. </td>
  43. <td>
  44. <s:propertyvalue="realname"/>
  45. </td>
  46. <td>
  47. <s:propertyvalue="registime"/>
  48. </td>
  49. </tr>
  50. </s:iterator>
  51. </table>
  52. <!--首页-->
  53. <s:urlid="url_first"value="page.action">
  54. <s:paramname="pageNow"value="1"></s:param>
  55. </s:url>
  56. <!--上一页-->
  57. <s:urlid="url_pre"value="page.action">
  58. <s:paramname="pageNow"value="pageNow-1"></s:param>
  59. </s:url>
  60. <!--下一页-->
  61. <s:urlid="url_next"value="page.action">
  62. <s:paramname="pageNow"value="pageNow+1"></s:param>
  63. </s:url>
  64. <!--末页-->
  65. <s:urlid="url_last"value="page.action">
  66. <s:paramname="pageNow"value="pageTotle"></s:param>
  67. </s:url>
  68. <!--如果不是首页则提供首页的链接,如果是首页则不提供链接,以下类似-->
  69. <s:iftest="pageNow!=1">
  70. [<s:ahref="%{url_first}">首页</s:a>]
  71. </s:if>
  72. <s:else>
  73. [首页]
  74. </s:else>
  75. <s:iftest="pageNow>1">
  76. [<s:ahref="%{url_pre}">上一页</s:a>]
  77. </s:if>
  78. <s:else>
  79. [上一页]
  80. </s:else>
  81. <!--for循环,current是循环变量(org.apache.struts2.util.Counter里定义的)-->
  82. <s:beanname="org.apache.struts2.util.Counter"id="i">
  83. <s:paramname="first"value="1"/>
  84. <s:paramname="last"value="%{pageTotle}"/>
  85. <s:iterator>
  86. <s:iftest="pageNow+1==current">
  87. <fontcolor="#3f84ff"><b><s:property/></b></font>
  88. </s:if>
  89. <s:else>
  90. <s:ahref="page.action?pageNow=%{current-1}"><fontcolor="#2fa2ff"><s:property/></font></s:a>
  91. </s:else>
  92. </s:iterator>
  93. </s:bean>
  94. <s:iteratorvalue="list"status="status">
  95. <s:urlid="url"value="page.action">
  96. <s:paramname="pageNow"value="pageNow"/>
  97. <s:paramname="pageTotle"value="pageTotle"/>
  98. </s:url>
  99. </s:iterator>
  100. <s:iftest="pageTotle>pageNow">
  101. [<s:ahref="%{url_next}">下一页</s:a>]
  102. </s:if>
  103. <s:else>
  104. [下一页]
  105. </s:else>
  106. <s:iftest="pageTotle!=pageNow">
  107. [<s:ahref="%{url_last}">末页</s:a>]
  108. </s:if>
  109. <s:else>
  110. [末页]
  111. </s:else>
  112. </body>
  113. </html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值