ssm框架+PageHelper插件实现分页查询功能

以实现用户管理模块的分页查询功能为例,在使用ssm框架搭建基础框架后,我们可以按照以下步骤实现分页查询功能。

步骤一:添加PageHelper依赖

在项目的pom.xml文件中添加以下依赖:

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

步骤二:配置PageHelper插件

在项目的Spring配置文件中,添加以下配置:

<!--配置PageHelper插件-->
<bean id="pageHelper" class="com.github.pagehelper.PageHelper" init-method="afterPropertiesSet">
    <property name="properties">
        <value>
            reasonable=true
            supportMethodsArguments=true
            returnPageInfo=true
            params=count=countSql
        </value>
    </property>
</bean>

步骤三:在Controller中接收分页参数,并使用PageHelper.startPage()方法实现分页查询功能

@RequestMapping(value = "userList", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getUserList(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize) {
    PageHelper.startPage(pageNum, pageSize);
    List<User> userList = userService.getUserList();
    PageInfo<User> pageInfo = new PageInfo<>(userList);
    Map<String, Object> result = new HashMap<>();
    result.put("pageInfo", pageInfo);
    return result;
}

以上代码实现了根据传递的pageNum和pageSize参数进行分页查询,并将查询结果封装到PageInfo中返回给前端。

示例1:使用ajax分页展示用户列表

前端代码:

var pageSize = 10;//每页显示10条记录
var pageNum = 1;//默认查询第一页
function getUserList() {
    $.ajax({
        url: "/userList",
        type: "GET",
        data: {pageNum: pageNum, pageSize: pageSize},
        dataType: "json",
        success: function (data) {
            var userList = data.pageInfo.list;
            var totalPage = data.pageInfo.pages;
            //渲染用户列表
        }
    });
}

以上代码通过ajax异步获取后台返回的分页结果,并根据分页信息渲染用户列表。

示例2:使用Thymeleaf模板引擎展示分页查询结果

前端代码:

<table>
    <tr>
        <th>用户ID</th>
        <th>用户名</th>
        <th>性别</th>
        <th>年龄</th>
        <th>操作</th>
    </tr>
    <tr th:each="user : ${pageInfo.list}">
        <td th:text="${user.id}"></td>
        <td th:text="${user.username}"></td>
        <td th:text="${user.sex}"></td>
        <td th:text="${user.age}"></td>
        <td><a href="#">编辑</a><a href="#">删除</a></td>
    </tr>
</table>
<div th:fragment="pagination">
    <ul>
        <li th:class="${pageInfo.isFirstPage() ? 'disabled' : ''}">
            <a th:if="${!pageInfo.isFirstPage()}"
               th:href="@{/userList(pageNum=1,pageSize=${pageInfo.pageSize})}"
               th:text="'<<'"><<</a>
        </li>
        <li th:class="${pageInfo.isFirstPage() ? 'disabled' : ''}">
            <a th:if="${!pageInfo.isFirstPage()}"
               th:href="@{/userList(pageNum=${pageInfo.pageNum}-1,pageSize=${pageInfo.pageSize})}"
               th:text="'< '">&lt;</a>
        </li>
        <li th:class="${pageInfo.isLastPage() ? 'disabled' : ''}">
            <a th:if="${!pageInfo.isLastPage()}"
               th:href="@{/userList(pageNum=${pageInfo.pageNum}+1,pageSize=${pageInfo.pageSize})}"
               th:text="' >'">&gt;</a>
        </li>
        <li th:class="${pageInfo.isLastPage() ? 'disabled' : ''}">
            <a th:if="${!pageInfo.isLastPage()}"
               th:href="@{/userList(pageNum=${pageInfo.pages},pageSize=${pageInfo.pageSize})}"
               th:text="'>>'">>></a>
        </li>
    </ul>
    <span th:text="'共 '+${pageInfo.pages}+' 页,当前第 '+${pageInfo.pageNum}+' 页,共计 '+${pageInfo.total}+' 条记录'"></span>
</div>

以上代码通过Thymeleaf模板引擎遍历展示分页结果,并在底部生成分页导航条。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ssm框架+PageHelper插件实现分页查询功能 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • java中Socket设置超时时间的两种方式

    下面我将为您讲解Java中Socket设置超时时间的两种方式。 方式一:使用setSoTimeout()方法设置超时时间 在Java中,Socket提供了一个setSoTimeout()方法,该方法可用于设置Socket的超时时间。具体步骤如下: 建立Socket连接 获取Socket的输入流和输出流 使用setSoTimeout()方法设置超时时间,单位为…

    Java 2023年5月20日
    00
  • 常见的Java网络编程协议有哪些?

    常见的Java网络编程协议有如下几种: TCP/IP协议:TCP/IP协议是互联网传输层协议的基础协议。Java中通过Socket实现TCP/IP协议网络编程。Socket类提供了底层的TCP/IP通信功能,开发者可以使用它来创建基于TCP协议的网络应用程序。 HTTP协议:HTTP协议是Web应用程序中使用得最多的协议。Java中通过HttpURLConn…

    Java 2023年5月11日
    00
  • Spring Boot 快速搭建微服务框架详细教程

    下面我来详细讲解“SpringBoot快速搭建微服务框架详细教程”的完整攻略。 一、前置条件 在开始快速搭建微服务框架之前,需要确保已经安装好以下环境: JDK 8或以上版本 Maven IntelliJ IDEA或其他Java开发IDE工具 二、搭建微服务框架 1. 创建SpringBoot项目 在IntelliJ IDEA中创建新项目,选择Spring …

    Java 2023年5月15日
    00
  • Spring+SpringMVC+MyBatis整合详细教程(SSM)

    以下是关于“Spring+SpringMVC+MyBatis整合详细教程(SSM)”的完整攻略,其中包含两个示例。 1. 前言 Spring+SpringMVC+MyBatis整合(简称SSM)是一种常用的Java Web开发框架,它将Spring、SpringMVC和MyBatis三个框架整合在一起,提供了一种灵活的方式来开发Web应用程序。本攻略将详细讲…

    Java 2023年5月16日
    00
  • Prototype Template对象 学习

    Prototype Template对象是AWS Amplify中用于构建和管理部署的云资源的重要对象之一。以下是学习Prototype Template对象的攻略: 1. 理解Prototype Template Prototype Template是AWS Amplify Console中的一个云资源模板(CloudFormation Template)…

    Java 2023年6月15日
    00
  • java 使用URLDecoder和URLEncoder对中文进行处理

    下面是详细讲解“java 使用URLDecoder和URLEncoder对中文进行处理”的完整攻略。 什么是URLDecoder和URLEncoder URLDecoder和URLEncoder是Java中内置的两个工具类,用于将字符串进行URL编码和解码。URL编码是指将字符串中的特殊字符(如中文)转换成%XX的形式,以便在URL中传输。URL解码则是将%…

    Java 2023年5月20日
    00
  • MyBatis的9种动态标签详解

    MyBatis的9种动态标签详解 在使用MyBatis进行数据库操作时,动态SQL是一个经常用到的特性。MyBatis提供了9种动态标签,分别是<if>、<choose>、<when>、<otherwise>、<trim>、<where>、<set>、<foreach&…

    Java 2023年5月19日
    00
  • java实现的DES加密算法详解

    Java实现的DES加密算法详解 什么是DES加密算法 DES加密算法是一种对称密钥算法,全称为“Data Encryption Standard”,是美国IBM公司于1975年研制的一种对称密钥加密算法。DES算法的原理非常简单,就是将明文经过一系列置换和替换操作,最终被加密成密文。而解密过程就是将密文经过相应的操作,最终得到明文。 DES算法具有如下特点…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部