PageHelper插件实现服务器端分页功能

来源:互联网 发布:讲政治知敬畏守规矩 编辑:程序博客网 时间:2024/06/05 14:33

一、添加依赖
在.pom文件中添加

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

二、添加配置
在spring-mybaits.xml文件中添加插件

     <!-- mybatis和spring完美整合,不需要mybatis的配置映射文件 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource"/>        <!-- 自动扫描mapping.xml文件 -->        <property name="mapperLocations" value="classpath:mapping/*.xml"></property>        <!--分页插件-->        <property name="plugins">            <array>                <bean class="com.github.pagehelper.PageHelper">                    <property name="properties">                        <value>                            dialect=mysql                            reasonable=true                        </value>                    </property>                </bean>            </array>        </property>        <!--分页-->    </bean>

三、controller代码

    //分页展示用户    @RequestMapping(value = "/user.do")    public ModelAndView test1(HttpServletRequest request, HttpServletResponse response, ModelMap mode) throws Exception {        ModelAndView modelAndView = new ModelAndView();        int pageNumber = 1;        try{            if(request.getParameter("pageNow").equals(null)){                System.out.println("参数空");            }else {                pageNumber = Integer.parseInt(request.getParameter("pageNow"));            }        }catch (Exception e){            //处理空针错误        }        System.out.println("请求参数"+request.getParameter("pageNow"));        PageInfo<user> pageInfo = userService.selectUserByPage(pageNumber,5);//        Map<String, Object> map = new HashMap<String, Object>();//        List<Object> data = new ArrayList<Object>();//        for(user admin : pageInfo.getList()){//            Map<String, Object> obj = new HashMap<String, Object>();//            obj.put("id", admin.getId());//            obj.put("username", admin.getUsername());//            obj.put("password", admin.getPassword());//            obj.put("enable", admin.getEnable());//            obj.put("id_card", admin.getIdCard());//            obj.put("phone", admin.getPhone());//            obj.put("address", admin.getAddress());//            obj.put("nick_name", admin.getAddress());//            data.add(obj);//        }        modelAndView.addObject("pageInfo",pageInfo); //jsp 根据users来传递信息        System.out.println("成功啦");        modelAndView.setViewName("/test/user");        return  modelAndView;    }

四、jsp显示

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%--  Created by IntelliJ IDEA.  User: Administrator  Date: 2017/12/2 0002  Time: 11:10  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>user</title></head><body><h1>User</h1><table>    <c:forEach items="${pageInfo.list}" var="u">        <%--属性值映射mapper 中的property--%>        <tr>            <td>${u.id}</td>            <td>${u.username}</td>            <td>${u.password}</td>            <td>${u.enable}</td>            <td>${u.idCard}</td>            <td>${u.phone}</td>            <td>${u.address}</td>            <td>${u.nickName}</td>        </tr>    </c:forEach>    <tr>        <td colspan="6">            <!-- 分页功能 start -->            <div align="center">                <font size="2">共 ${pageInfo.pageSize} 页</font> <font size="2">第                ${pageInfo.pageNum} 页</font> <a href="${pageContext.request.contextPath}/user.do?pageNow=1">首页</a>                <c:choose>                    <c:when test="${pageInfo.pageNum - 1 > 0}">                        <a href="${pageContext.request.contextPath}/user.do?pageNow=${pageInfo.pageNum - 1}">上一页</a>                    </c:when>                    <c:when test="${pageInfo.pageNum - 1 <= 0}">                        <a href="${pageContext.request.contextPath}/user.do?pageNow=1">上一页</a>                    </c:when>                </c:choose>                <%--pageSize共 页--%>                <%--pageNum 第 页--%>                <%--pagetotal 共 条--%>                <c:choose>                    <c:when test="${pageInfo.pageSize==0}">                        <a href="${pageContext.request.contextPath}/user.do?pageNow=${pageInfo.pageNum}">下一页</a>                    </c:when>                    <c:when test="${pageInfo.pageNum + 1 < pageInfo.pageSize}">                        <a href="${pageContext.request.contextPath}/user.do?pageNow=${pageInfo.pageNum + 1}">下一页</a>                    </c:when>                    <c:when test="${pageInfo.pageNum + 1 >= pageInfo.pageSize}">                        <a href="${pageContext.request.contextPath}/user.do?pageNow=${pageInfo.pageSize}">下一页</a>                    </c:when>                </c:choose>                <c:choose>                    <c:when test="${pageInfo.pageSize==0}">                        <a href="${pageContext.request.contextPath}/user.do?pageNow=${pageInfo.pageSize}">尾页</a>                    </c:when>                    <c:otherwise>                        <a href="${pageContext.request.contextPath}/user.do?pageNow=${pageInfo.pageSize}">尾页</a>                    </c:otherwise>                </c:choose>            </div>            <!-- 分页功能 End -->        </td>    </tr>    <%--<tr>--%>        <%--<td>${data.username}</td>--%>        <%--<td>${data.password}</td>--%>    <%--</tr>--%></table></body></html>
原创粉丝点击