基于SSM框架的web应用分页功能实现的开发笔记

开发环境

  • IDEA2018.2.2
  • tomcat7.0.94
  • JDK1.8
  • MySQL5.5.58
  • Maven3.6.0

开发前提

已有所需工程项目及前端页面文件

开发步骤

1.导入pagehelper插件包:在pom.xml文件的<dependencies></dependencies>标签对内新增如下代码,即可自动下载所需插件包:

    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.1.2</version>
    </dependency>

2.在ApplicationContext.xml文件的配置SqlSessionFactory对象的<bean>标签里添加如下代码:

<!-- other configuration -->
<property name="plugins">
    <array>
        <bean class="com.github.pagehelper.PageInterceptor">
            <property name="properties">
                <props>
                    <prop key="helperDialect">mysql</prop>
                    <prop key="reasonable">true</prop>
                </props>
            </property>
        </bean>
    </array>
</property>

3.将UserInfoService里的findAll()方法修改为:

@Override
public List<User> findAll(int page,int size) {
    PageHelper.startPage(page,size);
    return userInfoDao.findAll();
}

4.将UserInfoController类的findAll方法修改如下:

@RequestMapping("/findAll.do")
public ModelAndView findAll(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "5") int size){
    ModelAndView mv = new ModelAndView();
    List<UserInfo> userInfos = userInfoService.findAll(page,size);
    PageInfo<UserInfo> pageInfos = new PageInfo<UserInfo>(userInfos);
    mv.addObject("pageInfos",pageInfos);
    mv.setViewName("user-list");
    return mv;
}

5.将相关页面的jsp文件中的相关代码改为:

<c:forEach var="user" items="${pageInfos.list}">
   <tr>
      <td><input name="ids" type="checkbox"></td>
      <td>${user.id}</td>
      <td>${user.username}</td>
      <td>${user.password}</td>
      <td class="text-center">
         <a href="${pageContext.request.contextPath}/user/toUpdate.do?id=${user.id}" class="btn bg-olive btn-xs">更新</a>
         <a href="${pageContext.request.contextPath}/user/delete.do?id=${user.id}" class="btn bg-olive btn-xs">删除</a>
         <a href="#" class="btn bg-olive btn-xs">添加角色</a>
      </td>
   </tr>
</c:forEach>
<div class="box-tools pull-right">
	<ul class="pagination">
		<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=1&size=5" aria-label="Previous">首页</a></li>
		<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageInfos.pageNum-1}&size=5">上一页</a></li>

		<c:forEach begin="1" end="${pageInfos.pages}" var="pageNumber">
			<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageNumber}&size=5">${pageNumber}</a></li>
		</c:forEach>

		<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageInfos.pageNum+1}&size=5">下一页</a></li>
		<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageInfos.pages}&size=5" aria-label="Next">尾页</a></li>
	</ul>
</div>

6.至此,分页功能完成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值