基于Springmvc+Mybatis+Spring+Freemarker的物理分页插件(超级简单)

1.先上效果图(不怎么好看,主要看功能)

基于Springmvc+Mybatis+Spring+Freemarker的物理分页插件(超级简单)

2.实现(Maven项目)

2.1配置pom.xml文件

 
  1. <!-- 物理分页 -->

  2. <dependency>

  3. <groupId>com.github.pagehelper</groupId>

  4. <artifactId>pagehelper</artifactId>

  5. <version>5.0.0</version>

  6. </dependency>

 

2.2配置Pagehelper核心拦截器

 
  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"

  2. p:dataSource-ref="dataSource" p:mapperLocations="classpath:com/exp/phone/mapping/*.xml">

  3. <property name="plugins">

  4. <array>

  5. <bean class="com.github.pagehelper.PageInterceptor">

  6. <property name="properties">

  7. <value>

  8. helperDialect=mysql

  9. supportMethodsArguments=true

  10. </value>

  11. </property>

  12. </bean>

  13. </array>

  14. </property>

  15. </bean>

  16.  
  17. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

  18. <property name="basePackage" value="com.exp.phone.dao" />

  19. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

  20. </bean>

  21.  
  22. <bean id="transactionManager"

  23. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

  24. <property name="dataSource" ref="dataSource" />

  25. </bean>


 

2.3使用(后端)

 
  1. @RequestMapping("/list")

  2. public String list(Model model,@RequestParam(value="pageNum", defaultValue="1") int pageNum,

  3. @RequestParam(value="pageSize", defaultValue="3") int pageSize){

  4. PageHelper.startPage(pageNum, pageSize);

  5. List<User> list = userService.list(new HashMap());

  6. PageInfo page = new PageInfo(list);

  7. model.addAttribute("page",page);

  8. return "freeMarker";

  9.  
  10. }

 

2.4使用(前端)

 
  1. <#setting classic_compatible=true>

  2. <#assign base=request.contextPath />

  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  4. <html xmlns="http://www.w3.org/1999/xhtml">

  5. <head>

  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  7. <title>User List</title>

  8. <link href=" ${base}/bootstrap/css/bootstrap.min.css" rel="stylesheet">

  9. <style>

  10. li{float: left; list-style: none;margin: 10px;}

  11. .active{background-color: red}

  12. </style>

  13. </head>

  14.  
  15. <body>

  16.  
  17. <h3>总记录:${page.total}</h3>

  18. <h3>是否为第一页:${page.isFirstPage}</h3>

  19. <h3>是否为最后一页:${page.isLastPage}</h3>

  20. <h3>导航页码数:${page.navigatePages}</h3>

  21. <h3>导航条上的第一页:${page.navigateFirstPage}</h3>

  22. <h3>导航条上的最后一页:${page.navigateLastPage}</h3>

  23. <h3>上一页:${page.prePage}</h3>

  24. <h3>下一页:${page.nextPage}</h3>

  25. <h3>总页数:${page.pages}</h3>

  26. <table border="1" class="table table-striped">

  27. <thead>

  28. <tr>

  29. <th width="40%">Username</th>

  30. <th width="30%">Phone</th>

  31. <th width="30%">Sex</th>

  32. </tr>

  33. </thead>

  34. <tbody>

  35. <#if page.list??>

  36. <#list page.list as item>

  37. <tr>

  38. <td>${item.username}</td>

  39. <td>${item.phone}</td>

  40. <td>${(item.sex == 1)?string("男","女")}</td>

  41. <tr>

  42. </#list>

  43. <#else>

  44. <p> 抱歉!暂时无数据 </p>

  45. </#if>

  46. </tbody>

  47.  
  48. </table>

  49. <div class="message">

  50. 共<i class="blue">${page.total}</i>条记录,当前显示第 <i

  51. class="blue">${page.pageNum}/${page.pages}</i> 页

  52. </div>

  53. <div style="text-align:center;">

  54. <ul class="pagination">

  55.  
  56. <#if !page.isFirstPage >

  57. <li><a href="javascript:queryAll(${page.firstPage}, ${page.pageSize});"><<</a></li>

  58. <li><a href="javascript:queryAll(${page.prePage}, ${page.pageSize});"><</a></li>

  59. </#if>

  60. <#list page.navigatepageNums as navigatepageNum>

  61. <#if navigatepageNum==page.pageNum>

  62. <li class="active"><a href="javascript:queryAll(${navigatepageNum}, ${page.pageSize});">${navigatepageNum}</a></li>

  63. </#if>

  64. <#if navigatepageNum!=page.pageNum>

  65. <li><a href="javascript:queryAll(${navigatepageNum}, ${page.pageSize});">${navigatepageNum}</a></li>

  66. </#if>

  67. </#list>

  68. <#if !page.isLastPage>

  69. <li><a href="javascript:queryAll(${page.nextPage}, ${page.pageSize});">></a></li>

  70. <li><a href="javascript:queryAll(${page.lastPage}, ${page.pageSize});">>></a></li>

  71. </#if>

  72.  
  73. </ul>

  74. </div>

  75. <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>

  76. <script type="text/javascript">

  77. function queryAll(pageNum, pageSize){

  78. document.location.href="http://localhost/phoneRegisterandAngularJS/pageHelperController/list?pageNum="+pageNum;

  79. }

  80. </script>

  81. </body>

  82. </html>