SSM框架中使用pageHelper插件实现分页查询

在SSM框架的项目中使用pageHelper插件实现分页查询

  1. 在项目的pom.xml中添加pagehelper安装依赖
 <dependency>
            <groupId>com.github.pagehelpergroupId>
            <artifactId>pagehelperartifactId>
            <version>5.1.2version>
 dependency>
  1. 在applicationContext.xml中添加pagehelper分页配置文件

注意: 设置true
当点击上一页和下一页时,page值超出查询范围时不会导致查询错误

<property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <prop key="helperDialect">mysqlprop>
                            <prop key="resonable">trueprop>
                        props>
                    property>
                bean>
            array>
property>
  1. 修改dao层中的接口,在findAll接口方法中传递2个参数 分页和大小
public List<UserInfo> findAll(int page,int size);

service层的findAll接口方法也要添加参数
在service层的实现方法中实例化pagehelper对象

 public List<UserInfo> findAll(int page ,int size) {
        PageHelper.startPage(page,size);
        return userDao.findAll(page,size);
}
  1. 在jsp页面的跳转链接中传递page和size
<a href="${pageContext.request.contextPath}/user/findAll.do?page=1&size=5">
    <i class="fa fa-circle-o">i> 用户管理
a>

controller层增加对url映射的方法

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

在jsp中使用el语言获取传回页面的属性

 <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/user-update.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>
  1. 根据page生成分页导航栏
<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>

SSM框架中使用pageHelper插件实现分页查询_第1张图片

你可能感兴趣的:(计算机,数据库,大数据)