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日

相关文章

  • 详解SimpleDateFormat的线程安全问题与解决方案

    问题描述: SimpleDateFormat 是Java中用于格式化日期的类,它用来将给定的日期字符串转换为 Date 对象,或将 Date 对象格式化为指定格式的日期字符串。 然而,在多线程环境中使用 SimpleDateFormat 时,可能会出现线程不安全的问题,从而导致程序出错或结果不如预期。 问题原因: SimpleDateFormat 的实例不是…

    Java 2023年5月20日
    00
  • Java实现的简单音乐播放器功能示例

    下面我将为你讲解“Java实现的简单音乐播放器功能示例”的完整攻略。 需求分析 在实现一个音乐播放器之前,首先要明确该播放器需要实现哪些功能。可以列出以下需求: 能够载入音乐文件并播放。 能够停止、暂停播放。 提供音量调节功能。 提供进度调节功能。 能够显示正在播放的音乐文件名和剩余时间。 能够自动切换下一首歌曲。 实现步骤 创建一个主窗口,并添加播放器控制…

    Java 2023年5月19日
    00
  • JSP向后台传递参数的四种方式总结

    对于JSP向后台传递参数的四种方式,我们可以采用如下的攻略进行讲解: 一、URL传参 URL传参是JSP中最简单的一种方式,只需要将参数通过URL传递给目标页面,然后在目标页面中解析参数即可。 示例1:在JSP中跳转到另一个JSP页面,并传递参数 <a href="test.jsp?name=张三&age=20">测试…

    Java 2023年6月15日
    00
  • Java中匿名类的两种实现方式

    Java中匿名类的两种实现方式: 1. 作为实参传递 在Java语言中,我们可以通过将一个匿名类作为实参传递给某个方法或构造方法来实现匿名类的创建和使用。 示例1: public class AnonymousClass { public static void main(String[] args) { Thread thread = new Thread…

    Java 2023年5月18日
    00
  • 在IDEA中搭建最小可用SpringMVC项目(纯Java配置)

    以下是关于“在IDEA中搭建最小可用SpringMVC项目(纯Java配置)”的完整攻略,其中包含两个示例。 在IDEA中搭建最小可用SpringMVC项目(纯Java配置) Spring MVC是一个基于Java的Web框架,它可以帮我们快速开发Web应用程序。在IDEA中搭建最小可用SpringMVC项目非常简单,本文将介绍如何使用纯Java配置搭建最小…

    Java 2023年5月17日
    00
  • Sprigmvc项目转为springboot的方法

    下面是关于“SpringMVC项目转为Spring Boot的方法”的完整攻略,包含两个示例说明。 SpringMVC项目转为Spring Boot的方法 Spring Boot是一个基于Spring框架的快速开发Web应用程序的工具,可以帮助我们快速构建和部署Web应用程序。本文将介绍如何将SpringMVC项目转为Spring Boot。 添加依赖 首先…

    Java 2023年5月17日
    00
  • 基于Java代码配置MyBatis Generator

    关于“基于Java代码配置MyBatis Generator”的完整攻略,我可以提供如下讲解。 1. MyBatis Generator 简介 MyBatis Generator (MBG) 是 MyBatis 官方提供的一个用于根据数据库表自动生成 Mapper 接口、XML 映射文件和 Model 等代码的工具。MBG 能够根据数据库表结构自动生成一定基…

    Java 2023年5月20日
    00
  • Java中快速把map转成json格式的方法

    将Map对象转换为JSON格式的字符串是Java开发中很常见的操作。下面提供两种快速将Java Map对象转换为JSON格式的方法。 方法一:使用jackson-databind实现Map转JSON Jackson是一个非常常用的Java JSON库。使用jackson可以方便地将Java对象序列化为JSON格式字符串。下面是快速把Map类型转成json的示…

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